以下程序的结果是什么?
int i = 1;
int main()
{
int i = i;
return 0;
}
A: main()函数里的i是一个未定义值
B: main()函数的i为1
C: 编译器不允许这种写法
D: main()里i的值为0
解答:当笔试者看到此代码时,可能会觉得古怪。虽然在C++中编译是可以通过的(显然是不合理)。当main()函数里的i从定义开始,外部的全局变量i就已经被屏蔽掉,所以main()函数里作为右值的i的值不会0也不会是1,与外部的i无关。而是一个未定义的符号。
答案:A
2.以下程序的输出结果是什么?
#include<stdio.h>
int main()
{
int arr[]={11,12,13,14,15};
int ptr = arr;
(ptr++) += 100;
printf("%d %d\n",ptr,(++ptr));
return 0;
}
A:13 13
B:112 13
C :12 12
D:12 13
要想知道答案请点击网址C语言研究中心