大家猜运行这段C会出来什么

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:04:18
main()
{
char a[100];
printf("%s\n",a);
system("pause");
}
我本来是想试试printf("%s\n","a");的结果出来一大串烫和两个符号
不知道为什么
也顺便问一下
printf("%s\n","a"); 大概哪些情况会用到?printf("a\n");不方便点啊?!
谢谢解答

C语言的一个特点就是绝不会为你做任何一件多余的事情,就如上面,你声明一个字符数组char a[100],那么,有100单位的字符被申请并绑定到变量a上,如果你不做任何操作,那么,着100单位的字符究竟是什么呢?不知道,没有人知道里面存的是什么,可能是任何东西。所以,C语言在声明一个变量后随之要做的就是初始化。把内存中随机的东西变成一个你想要的,比如一般int会被初始化为0。
第二个问题,你说的没错,可以简单点,但是一般来说printf的第二个参数经常是一个变量而不是常量。

...你没初始化,所以它分配到内存里的空间原来是什么内容,现在还是什么内容。。。你怎么会这么用啊
printf("a\n");就打出来个a回车

原因是a没有赋值,
a里面的东西都是随机的
而a字符串输出到'\0'结束!!

下面的printf("a\n");是错误的
没这种输出
C只有printf("%s\n",a);一种
而且不是"a"是a

因为你的a还没有赋值,给a赋值再试试,比如:
char a[100];
strcpy(a, "string");
printf("%s\n",a);

printf("%s\n","a"); 这种写法确实基本上用不上

错误 什么啊 肯定不行