想到一个傻傻的问题
程序代码:
#include<stdio.h>
int main(void){
char c[7]="abcdefg";
printf("%s",c);
return 0;
}
int main(void){
char c[7]="abcdefg";
printf("%s",c);
return 0;
}
按照书上讲的,printf会一直输出直到'\0'
我试了几次,本以为会输出很多很多字符,可每次都只会多输出3-5个字符,
难道内存里面的'\0'会这么多?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main(void){
char c[7]="abcdefg"; //越界了,应该是 c[8]="abcdefg"
printf("%s",c);
return 0;
}
----------------解决方案--------------------------------------------------------
恩。。有些地方零是很多的。你可以用VC的调试功能来看看内存
----------------解决方案--------------------------------------------------------
果然有很多
----------------解决方案--------------------------------------------------------