#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'作为标识的吧?
先说一声谢谢。
