中易网

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,并让它指向通过显式类型转换取到的这个地址。
全部回答
  • 1楼网友:年轻没有失败
  • 2021-04-27 12:57
你可以这样分析 用括号括了起来 说明这是一个整体,前面有类型标识符int,说明*ptr是int型的,&(*ptr)就是int型的指针了,而 &(*ptr)也就是ptr 所以ptr就是指向整型变量的指针~ 选a
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息