C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
来源:互联网 发布:海珠区淘宝美工培训 编辑:程序博客网 时间:2024/06/05 20:11
问题: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
0 0
- C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
- C语言 int &a
- (int&)a和(int)a的区别 - c语言
- C语言拾遗:(int)a、&a、(int)&a、(int&)a的区别
- C语言的int (*a)[10]等指针问题理解
- 高通笔试题int *ptr=(int *)(&a+1)
- 取数组地址引发的血案(int*)(&a+1);(int*)((int)a+1);
- 数据结构2:int a; int* a; int** a; int (*a)[10];int *a[10]; int (*a)(int)区别
- a[2]地址-a[0]地址 实际等于 (a[2]地址-a[0]地址)/a的类型 -- C
- C++:关于int *a; int &a; int & *a; int * &a
- 【C语言】[sizeof+指针]-int a[2][3],sizeof(a)与sizeof(a[0])
- 数组首元素地址和数组地址、int *ptr=(int *)(&a+1)问题的探讨
- int (*a)(int) ; int (*a[10])(int); int *(*a)(int) ;
- 为什么下面的程序要a b c的地址赋给指针p p1 p2?
- int a; int* a; int** a; int (*a)[10]; int (*a)(int);int *(*a)[10]区别?
- int a; int* a; int** a; int a[10]; int (*a)[10]; int (*a)(int); 区别
- 初学 c语言 关于指针------什么是指针 int *a 与 *a的区别
- 面试常考:int a[5],问a和&a的区别
- 9个点画10条直线,要求每条直线上至少3个点
- 【OC】成员变量
- 感悟-十月学习生活
- 216 Web 安全色 开发中常用安全色
- 枚举数和迭代器(1)--枚举数
- C语言笔试题精选2---int a[10];问下面哪些不可以表示a[1]的地址?
- 阅读“优秀程序员与普通程序员之间的区别”
- iOS中定时器的使用
- LoadLibrary() 错误码问题 14001, 126
- android 电池(一):锂电池基本原理篇
- 微信首页responseMsg()
- 二叉排序树
- 第十二周项目三—Fibnacci函数
- 处理表单(POST)