[C语言学习笔记五]复合语句和操作符的区分
程序员文章站
2023-12-31 16:40:10
这一篇讨论了复合语句的概念和用法与同一个符号作为不同意义操作符时的区分 ......
复合语句的概念和用法
在部分时候,语句必须要与其他语句相结合才能实现应有的功能。放在花括号 {} 里的代码叫做复合语句。
例如:
int a,b; if (a == b) ... ... /* 这一部分代码配合 if 函数使用,因此放在花括号内。 */ }
为了增加程序的可读性,在需要时可以把用于实现同一个功能的代码放在花括号里。例如:
int a=1,b=2,c; if (a < b) { printf("a = b"); { c = a printf("%d",c) } }
这种用法一般没有必要,可以结合适当空行和注释来指明。
左值和右值与多元操作符
例如:
int a,b,c,d; c = a + b; //d = c = a + b; /* 这是一种不好的习惯! */
不要使用注去的写法!此处可理解为
d = c; c = a + b;
而应该理解为
d = a + b; c = a + b;
这可能会导致错误,因此请极力避免此写法。
此处加号 + 和等号 = 是操作符,且是二元操作符。因为它们都有两个被操作的数,即等号左边的 c 和右边的 a 。因它们所处的位置,所以操作符左边的部分称为左值,右边的称为右值。
在所有操作符中,同一个符号可能有不同的意义,例如:
c = a * b /* 取 a 与 b 的乘积 */ c = * (a) /* 取 a 的指针 */
第一种写法有两个操作数,为二元操作符,所以为乘法运算符;第二种有一个操作数,为一元操作符,所以为指针操作符。