〃忝書γě渎ぐ 发表于 2020-5-22 06:11:49

C语言指针结合性与优先级

昨天看到这样一个指针,((int(*)(void))&str)()居然还有实际做用,发现学指针不能只靠背了,要学习指针的原理,求大神以这个指针为例,教我一下指针的原理,怎样通过优先级,结合性来看这个指针?

CodingCat_k 发表于 2020-5-22 06:11:50

((int(*)(void))&str)();
首先找到变量名str;接着查看其右侧有无[];无
遇到右侧第一个括号
查看左侧发现有取地址符,这就证明需要用到的是str所在的地址;
再次往左发现(int(*)(void)())这个函数指针类型;//可以用typedef int(* FuncPtr) (void);简化表达
证明其将刚刚取得的地址强制类型转换成一个函数指针;
最后遇到左半边括号。再看括号外就剩下()
意味着将刚刚强制类型转换来的地址当成了函数使用。
综上,str可能是一个函数名

Twilight6 发表于 2020-5-22 10:13:37

https://www.cnblogs.com/chenyangqing/p/3411249.html

看看这个对你有帮助吗

你是我的小甲鱼 发表于 2020-5-22 14:05:47

https://fishc.com.cn/forum.php?mod=viewthread&tid=67664&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571
希望对你有帮助
页: [1]
查看完整版本: C语言指针结合性与优先级