【C】C里符号优先级的那些坑
最近准备在准备公司里的底层软件技能鉴定,作为每次面试笔试必考的坑,感觉很有必要好好复习一遍。
常见的有这几种坑:
指针与数组
这里要提到一种层层解析的方法。
1、先从最简单的开始
int *pf;
首先应该理解一下,“*”这个符号应该理解为“解地址”,即将地址转换成对应的数据。
这个例子暂时不用考虑优先级的事,所以含义是:
* pf解地址后是int类型 –> pf就是int的指针
int pf[3];
然后理解“[]‘这个符号,应该是对变量进行地址偏移运算,比如pf[3]应该就是pf偏移3个单位后的地址。
所以这个例子可以这么理解
* pf偏移0/1/2个单位时都是int类型 –> pf就是大小为3的int数组
2、*与[]
当两个东西组合起来,事情就变得复杂了,首先应该记住,“[]”的优先级比”*”高