在学习小甲鱼的一个视频教程时

https://www.bilibili.com/video/BV17s411N78s?p=50

看到了一堆复杂的声明,所以就去网上找了篇文章巩固一下。

觉得这篇文章挺好的,摘抄一部分

https://blog.csdn.net/wangweixaut061/article/details/6549768


右左法则:首先从最里面的圆括号看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。

笔者要对这个法则进行一个小小的修正,应该是从未定义的标识符开始阅读,而不是从括号读起,之所以是未定义的标识符,是因为一个声明里面可能有多个标识符,但未定义的标识符只会有一个。

1:离名字越近的修饰符优先级越高
2:[],()优先级比*高
3:用()括起来的表达式的优先级最高。


typedef int PARA;

这种形式跟#define int PARA几乎一样,如前面几章所述,这些教材的宗旨是由浅入深,但实际做出来的行为却是以偏盖全。的确,这种形式在所有形式中是最简单的,但却没有对typedef进一步解释,使得不少人用#define的思维来看待typedef,把int与PARA分开来看,int是一部分,PARA是另一部分,但实际上根本就不是这么一回事。int与PARA是一个整体!就象int i:声明一样是一个整体声明,只不过int i定义了一个变量,而typedef定义了一个别名。