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