感悟记录如下:
一.对于(*(void( *) ())0)()的理解
-----------------------------对于(*(void( *) ())0)()可以分开一步一步理解
- 对于最里面的void(*)()这就表示一个void型的函数指针。
- 对于(void(*)())0,这里表示将0处的地址强转为void型的函数指针。
- 再下来对于(*(void( *) ())0),很明显这步操作是指对地址为0的函数指针进行解引用。
- 那么显然(*(void( *) ())0)()就是对地址为0处保存的函数的一个调用。
思考: (*(char ** ( * )(char **,char **) )0)(char **,char **);
其实也和上面类似嘿嘿。