#include <stdio.h>
int main(int argc, const char * argv[]) {
char name[] ="hzl";
char name2[3]={'i','t'};
char name3[]={'d','t'};
name[2] = 'g';
int size = sizeof(name);
printf("%d,%s,%s,%s,%s\n",size,name,name2,name3,&name3[1]);
return 0;
}
传入字符数组是将数组的地址传入,而printf输出某一段的判断标准是从地址往下直到遇到\0,也就是说\0是提示结束。如果没有,甚至会改变别的量的内存。非常危险。摸到别人家能不危险么。
对照图片,试着理解下\0在内存中到底是如何发生作用的~~