(1)下面代码有问题吗?
#include <stdio.h>
int a;
int a = 10;
int main()
{
return 0;
}
答案:没有问题
解析:不知如何解释...全局变量的规定吧,下面就有问题:重复定义变量了
#include <stdio.h>
int a = 10;
int a = 20;
int main()
{
return 0;
}
(2)
答案:D
解析:主要是分清a +1 和&a +1 的区别.
a是数组名,代表第一个元素的地址,由于元素是int类型的,a+1表示a存储的地址加上4个字节,加完后的地址是数组第二个元素的地址.
&a代表的不是第一个元素的地址,而是整个数组的地址,由于数组有5个int类型的数据,&a + 1表示a存储的地址加上20个字节,加完后的地址是比数组第五个元素的地址大4个字节,而(int *)(&a + 1)把这个以数组所占字节为单元进行加减的地址强转为以int所占字节为单元进行加减的地址.因此p-1代表数组第5个元素的地址
|
|