C语言的一个关于数组的问题.为什么输出结果不一样?????

#include"stdio.h"
#include"string.h"
void main(){
char array[]={'a','b','c','d','e'};
for(int j=0;array[j]!='\0';j++){
printf("array[%d]=%c\n",j,array[j]);
}

for(j=0;j<strlen(array);j++){
printf("array[%d]=%c\n",j,array[j]);
}
for(j=0;j<5j++){
printf("array[%d]=%c\n",j,array[j]);
}

}

第1个回答  2012-04-09
array[j]!='\0'是一个不确定条件,因为数组中没有这个值,所以j会一直加,直到遇到空,然而哪里有空,谁也不知道。
第2个回答  2012-04-09
#include"stdio.h"
#include"string.h"
void main(){
char array[]={'a','b','c','d','e','\0'};//这里 你根本没有定义结束符'\0'
for(int j=0;array[j]!='\0';j++){
printf("array[%d]=%c\n",j,array[j]);
}

for(j=0;j<strlen(array);j++){
printf("array[%d]=%c\n",j,array[j]);
}
for(j=0;j<5;j++){
printf("array[%d]=%c\n",j,array[j]);
}

}本回答被提问者采纳
第3个回答  2012-04-09
在VC单步看看。追问

strlen(array);array[j]!='\0'都是为了确定数组的大小,但这儿输出的大小却大于5(数组大小为9)

相似回答