A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

(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个元素的地址

1 个回复

倒序浏览
第二题说的很详细,赞~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马