首页 > 代码库 > C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
问题:int a[10];问下面哪些不可以表示a[1]的地址?
A、a+sizeof(int)
B、&a[0] + 1
C、(int*)&a+1
D、(int*)((char*)&a+sizeof(int))
#include <stdio.h> 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语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。