重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你的数组a[0]在赋值过程中就是0啊
成都创新互联拥有十载成都网站建设工作经验,为各大企业提供网站设计、成都网站设计服务,对于网页设计、PC网站建设(电脑版网站建设)、成都app软件开发公司、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名与空间等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。
即a[0]=0;
for(;jMAX;j++)
{
if(a[j]==NULL)//如果数组为空则返回当前数组的下标,即为数组元素的个数
{ //或者这样写a[j]=='\0'
m=j;
printf("%d\n",m);
break;
}
}
所以上面程序j=0时,a[0] == NULL是TRUE,所以打印出m为0啊
所以你可以将赋值语句改一下即可
for(i=1;i=10;i++)
{
a[i]=i;//对十个数组依次赋值
}
没有这样的函数。不过如果是静态定义的数组,可以在定义的函数中 用
sizeof(a)/sizeof(a[0]) 来表示其个数 这个是一维的。 如果是二维的 就是
sizeof(a)/sizeof(a[0][0])
如果是动态分配的,或者是以指针方式传给了其它函数,就没办法通过语句知道大小了,只能你自己记录。
C语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数),通过数组占内存总空间/单个元素占内存空间大小,即可得到数组的元素个数
例如
但是,通过将数组作为函数参数传递到函数中,以获得数组长度是不可行的
例如
原因:数组arr是函数参数,在函数中,arr只是一个指针(地址,系统在本函数运行时,是不知道arr所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(arr)的结果是指针变量arr占内存的大小,一般在32位机上是4个字节。arr[0]是int类型,sizeof(arr[0])也是4个字节,所以,结果永远是1。
如果想要在被调用的函数中,得知原数组的大小,可以再给函数添加一个参数,用于指定数组的大小,让外界调用函数前就讲数组的大小传递进来
对于字符数组str[N],判断方法有以下三种:
第一种:用库函数strlen
len = strlen(str); // 数组长度
第二种:利用计数器
int i=0;
while(str[i++] != '\0'); // 数组str的长度为i
第三种:利用sizeof函数
len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。