c语言 int *ptr1 = (int*)(&a + 1); 是什么意思
答案:2 悬赏:50
解决时间 2021-04-28 12:02
- 提问者网友:唤魂
- 2021-04-27 11:31
c语言 int *ptr1 = (int*)(&a + 1); 是什么意思
最佳答案
- 二级知识专家网友:虚伪的现实
- 2021-04-27 12:32
(&a + 1)
先取变量a的地址,并根据a的地址获得下一个与a同类型的相邻地址。
(int*)(&a + 1)
把这个相邻地址显式类型转换为int类型的地址
int *ptr1 = (int*)(&a + 1);
定义一个int指针变量ptr1,并让它指向通过显式类型转换取到的这个地址。
先取变量a的地址,并根据a的地址获得下一个与a同类型的相邻地址。
(int*)(&a + 1)
把这个相邻地址显式类型转换为int类型的地址
int *ptr1 = (int*)(&a + 1);
定义一个int指针变量ptr1,并让它指向通过显式类型转换取到的这个地址。
全部回答
- 1楼网友:年轻没有失败
- 2021-04-27 12:57
你可以这样分析 用括号括了起来 说明这是一个整体,前面有类型标识符int,说明*ptr是int型的,&(*ptr)就是int型的指针了,而
&(*ptr)也就是ptr 所以ptr就是指向整型变量的指针~ 选a
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息