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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 21:04:21
void main(){char a[1]={'a'};printf(

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]就可以了