请教关于一个C问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 10:04:35
#include<stdlib.h>
main()
{
int n=0,i=0;
int a[5]={1,3,4,3,4};
for(i;a[i]!='\0';i++)
n++;
for(i;i<5;i++)
printf("%d\n",a[i]);

system("pause");
return(0);
}
我本想让n++得到数组的元素数目,但是编译器却没有反应,也没有报错
请朋友们告诉我问题出在哪了,谢谢大家!

for(i;a[i]!='\0';i++); 这句已经将i的值置成5了
...
for(i;i<5;i++); 所以这句条件不成立

printf("d%\n",a[i]); 这句不执行

文件我加在工程中。
应该是编译器设置问题。

return(0)是干吗的?

错误很多啊!!!
你怎么能用'\0'来判断那,这是字符呀,你是int型的数组!!
可以这么判断数组的元素个数:int len=sizeof(a)/sizeof(int);