5. 逗号表达式
1 exp1, 1 exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
- //代码1
- int a = 1;
- int b = 2;
- int c = (a>b, a=b+10, a, b=a+1);//逗号表达式
- c是多少?
- //代码2
- if (a =b + 1, c=a / 2, d > 0)
- //代码3
- a = get_val();
- count_val(a);
- while (a > 0)
- {
- //业务处理
- a = get_val();
- count_val(a);
- }
- 如果使用逗号表达式,改写:
- while (a = get_val(), count_val(a), a>0)
- {
- //业务处理
- }
6. 下标访问[]、函数调用()
6.1 [ ] 下标引用操作符
操作数:一个数组名 + 一个索引值
int arr[10];//创建数组
arr[9] = 10;//实用下标引用操作符。
[ ]的两个操作数是arr和9。
6.2 函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
- #include
- void test1()
- {
- printf("hehe\n");
- }
- void test2(const char *str)
- {
- printf("%s\n", str);
- }
- int main()
- {
- test1(); //这里的()就是作为函数调用操作符。
- test2("hello bit.");//这里的()就是函数调用操作符。
- return 0;
- }
7. 操作符的属性:优先级、结合性
C语言的操作符有2个重要0属性:优先级、结合性,这两个属性决定了表达式求值的计算顺序。
7.1 优先级
优先级指的是,如果一个表达式包含多个运算符,哪个运算符应该优先执行。各种运算符的优先级是不一样的。
1 3 + 4 * 5;
上面示例中,表达式3 + 4 * 5 里面既有加法运算符( + ),又有乘法运算符( * )。由于乘法
的优先级高于加法,所以会先计算4 * 5 ,而不是先计算3 + 4 。