这段代码会发生什么?
#include <stdio.h>
int main(){
int e;
printf("%d ", e);
printf("%s", e);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
e会有a)垃圾值吗?b)NULL
在GCC中它显示垃圾值,在g ++中它显示0和NULL.谢谢!!
两个语句都调用未定义的行为,因为e对象未初始化,因此其值是不确定的.
第二个语句也有错误的转换说明符,%s规范需要一个char *参数.
因此,正如评论中提到的那样,正确的答案既不是a)也不是b)而是c)恶魔飞出你的鼻子.