关于int *a, *((int **)(a))问题

bhdp_hhhz1 2012-12-13 11:08:15
如题,int *a =&b;
int *c= &d;
*((int **)(a))=d;
想问下到底干了些什么,验证了下应该不是强制转换?求权威解释?,谢谢~
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2012-12-14
  • 打赏
  • 举报
回复
到后来赋值的还是指针,想编译通过加上*((int **)(a))=(int *)d;
bhdp_hhhz1 2012-12-14
  • 打赏
  • 举报
回复
引用 4 楼 fishion 的回复:
到后来赋值的还是指针,想编译通过加上*((int **)(a))=(int *)d;
最后一句写错了 *((int **)(a))=c;
bhdp_hhhz1 2012-12-14
  • 打赏
  • 举报
回复
引用 4 楼 fishion 的回复:
到后来赋值的还是指针,想编译通过加上*((int **)(a))=(int *)d;
最后一句写错了 *((int **)(a))=c;
bhdp_hhhz1 2012-12-14
  • 打赏
  • 举报
回复
引用 1 楼 wuyu637 的回复:
*((int **)(a)) 这个地方做了一堆废话。。 a原来是一个指针, 指向一个int。 将a强制转化为一个指向int*的指针,这个时候a变成了指向指针的指针 再取这个指针的指针de值,用d的值覆盖。。。 这种语法也就面试题会出现了
指向指针的指针,应该可以这样解引用int**,但是这样通不过编译。结果存的是d的地址,输出的时候是十进制。 这是我在别人设计内存池的时候看到的,应该是有意设计,不然直接定义int** a就好了
yisikaipu 2012-12-13
  • 打赏
  • 举报
回复
编译通不过的吧
wuyu637 2012-12-13
  • 打赏
  • 举报
回复
*((int **)(a)) 这个地方做了一堆废话。。 a原来是一个指针, 指向一个int。 将a强制转化为一个指向int*的指针,这个时候a变成了指向指针的指针 再取这个指针的指针de值,用d的值覆盖。。。 这种语法也就面试题会出现了

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧