void main(){char a[1]={'a'};printf("%s",a);}为什么打印出的字符串在'a'后面还有一串乱码?……

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/31 13:10:45
void main(){char a[1]={'a'};printf(
xŒo@ !!l `bsזQ5q! PdlSB+[\bz]xK4~ӚJ"-#'PƅXtNj =5pFIUhuM;?;{"oW6Tah`w w{ O\<ϵ-vOaD!{wu'YaBlc)r:ɽLh Js/x_#ܓ m;RT0%9BPa9 rH D^  aՠ‹CaI?z#@p".Y0TI*Dbuqf1{>[kX3+by:yM*j:V%.sfN핏έakfw6'>JTgE5/&m7DM{R$ljV=<+Lm]KQ5.b|=`6v휔I5폶FlWhKʁ/bմ>R?c<Ƣ}hib,B3t

void main(){char a[1]={'a'};printf("%s",a);}为什么打印出的字符串在'a'后面还有一串乱码?……
void main(){
char a[1]={'a'};
printf("%s",a);
}
为什么打印出的字符串在'a'后面还有一串乱码?……

void main(){char a[1]={'a'};printf("%s",a);}为什么打印出的字符串在'a'后面还有一串乱码?……
这是由于字符串的输出要看到'\0'才停止,而'\0'要占一字节,并且是系统自动分配的.由于你声明的数组只有一个字节,所以没有位置放'\0'故出现了意外的状况.可以将声明的a[1]改为a[2]或者将输出字符串改为输出字符,即将%s改为%c,a改为a[0]就可以了