#include<stdio.h>
int main(){
char arr[4] = {1,2,3,4};
int k=0;
for(k;arr[k];k++){
printf("arr[k] = %d\t",arr[k]);
printf("arr[k]地址为%p\n",arr+k);
}
while(1){
printf("arr[k] = %d\t",arr[k]);
printf("arr[k]地址为%p\n",arr+k);
k++;
printf("getchar");
getchar();
}
return 0;
}
不论是重新编译运行还是关掉 dev-cpp 重新打开这个.c 文件再编译运行,输出的结果都是一样的,如下
不论如何在数组之后的空间里的都是这么个赋值,出现这么多 0 是为什么呢?理论上来说不应该是各个的值都不一样,乱七八糟的那种么?尤其是那个 12 ,不知道是怎么来的。并且 C 语言应该是不会在数组结束的时候像对待字符串那样顺手给放一个'\0'作为标识的吧?
先说一声谢谢。