设为首页 加入收藏

TOP

C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
2014-11-23 19:14:54 来源: 作者: 【 】 浏览:21
Tags:语言 试题精选 2---int 下面 哪些 可以 表示 地址

问题:int a[10];问下面哪些不可以表示a[1]的地址?

A、a+sizeof(int)

B、&a[0] + 1

C、(int*)&a+1

D、(int*)((char*)&a+sizeof(int))


#include 
  
   

int main()
{
	int a[10] = {
		1,2,3,4,5,6,7,8,9,0
	};
	printf("*******输出地址*******\n");
	printf("a[0]                          = %d\n",a);
	printf("a+sizeof(int)                 = %d\n",a+sizeof(int));  //a+1为地址加4,这里相当于地址加了16 
	printf("&a[0] + 1                     = %d\n",&a[0] + 1);  // 这个加1也是地址加4 
	printf("(int*)&a+1                    = %d\n",(int*)&a+1);  // 加1也是地址加5 
	printf("(int*)((char*)&a+sizeof(int)) = %d\n",(int*)((char*)&a+sizeof(int)));//这里先把地址变成指向char类型指针,然后+4就是按char类型长度加,最后变成指向整型 
	
	printf("\n"); 
	printf("*******输出值*********\n");	
	printf("a[0]                          = %d\n",*a);
	printf("a+sizeof(int)                 = %d\n",*(a+sizeof(int)));
	printf("&a[0] + 1                     = %d\n",*(&a[0] + 1)); 
	printf("(int*)&a+1                    = %d\n",*((int*)&a+1));
	printf("(int*)((char*)&a+sizeof(int)) = %d\n",*((int*)((char*)&a+sizeof(int))));	
	return 0;
}
  

输出:


结果:

答案是A

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C学习笔记――malloc内存分配 下一篇Objective-C基础笔记(2)@proper..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: