(*(void(*)())0)();

(*(void(*)())0)();

分析:

1.  ( void(*)( ) ) 0:将0转化为指向void(*)()型函数的指针;

2. *( void(*)( ) ) 0,相当于*p,取0这个函数指针的内容,该内容是一个函数首地址,*( void(*)( ) ) 0就已经等价于这个函数。

  就相当于:

  int a;

  int *ptr;

  ptr = &a;

  那么*ptr是不是就可以等价于a了,对*ptr操作和操作a一样。

3.对第二步得到的这个函数进行调用就有了(*(void(*)())0)( );相当于(*p)( )。

猜你喜欢

转载自www.cnblogs.com/aiden-zhang/p/11407552.html