为什么程序结果是这个?

来源:百度知道 编辑:UC知道 时间:2024/05/14 00:01:56
#include<stdio.h>
void main()
{
char a[][3]={'a','a','a','b','b','b','c','c','c'};
printf("%s",a);} 结果是aaabbbccc烫汤,后面两个字是为什么会出现?

%s打印的是字符串,而你的数组中全是字符(从你使用单引号可以看出来),你从地址a出开始打印,直到遇到 \0,感觉你已经越界了,后面的两个已经不属于你的程序了,但打印了出来。

正确的程序

#include<stdio.h>
int main()
{
int i,j;
char a[][3]={'a','a','a','b','b','b','c','c','c'};

for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%c",a[i][j]);
return 0;
}

gcc上编译通过

你中病毒了