C陷阱和缺陷
2. 语法陷阱
2.1 运算符优先级
看上去琳琅满目,但有规律可循:
优先级最高为括号、后缀、下标这一类单目运算符 的优先级仅次于上述, 高于双目运算符。双目运算符:算数运算符 ->移位运算符 ->关系运算符 ->逻辑运算符 ->赋值运算符 ->条件运算符单目运算符、赋值运算符和三目运算符的结合顺序是自右向左,其余都是自左向右
举例:
*p++会是*(p++) :自右向左结合while(c=get(in) != EOF)有错,赋值运算符优先级低,结合有错,应为 while((c=get(in)) != EOF)
2.6 悬挂else引发的问题
if(x == 0)
if( y== 0)
error();
else
{
z = x + y;
f(&z);
}
其实际含义为:
if(x == 0)
{
if( y== 0)
error();
else
{
z = x +
C陷阱和缺陷最先出现在Python成神之路。
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/18641.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论