一个关于C指针的问题

shark003 2008-03-26 04:57:16
1.
(*(void(*)())0)(); //调用地址为0处的子程序。

2.
* 将一个整数转换为一个指针的结果是实现相关的(implementation-dependent),除了一个例外。
* 这个例外是常数0,它可以保证被转换为一个与其它任何有效指针都不相等的指针。这个值通常类似这样定义:#define NULL 0
* 当用0作为指针时它决不能被解除引用。换句话说,当你将0赋给一个指针变量后,你就不能访问它所指向的内存
if(p == (char *)0) /* wrong */


问题:
为什么1是对的? 在1中0不是被解除引用了么?
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjf_2008 2008-03-27
  • 打赏
  • 举报
回复
函数指针
wuyeyuanquli2008 2008-03-27
  • 打赏
  • 举报
回复
指针不好搞啊..
qmm161 2008-03-26
  • 打赏
  • 举报
回复
函数指针!
c语言规定,解不解引用都是一样的,lz可以试试定义函数指针试试看!
gefengxztg 2008-03-26
  • 打赏
  • 举报
回复
mark
shark003 2008-03-26
  • 打赏
  • 举报
回复
楼上能不能说得再详细点
(*(void(*)())0)();就是函数指针啊

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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