【C语言】条件操作符、逗号表达式、下标引用操作符。

时间:2022-10-14 14:03:18

????write in front????   

????大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流????

????2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 阿里云星级博主~掘金⇿InfoQ~51CTOP创作者~周榜92﹣总榜886⇿全网访问量35w+????

????本文由 謓泽 原创 发布在51CTOP 如需转载还请通知⚠

????个人主页-​謓泽51Ctop的博客​????

????欢迎各位→点赞???? + 收藏⭐️ + 留言????

????系列专栏-​謓泽51Ctop的分类_51CTO博客​????

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本????

【C语言】条件操作符、逗号表达式、下标引用操作符。

????条件操作符

exp1 ? exp2 : exp3 分别为 表达式1 ? 表达式2 :表达式3
  • 条件操作符也被称之为三目操作符,唯①一个具有三个数的操作符。如下例子:
if(a>b)
{
max = a;
}
else
{
max = b;
}

不过,C语言提供了一种更加简单的方法,叫做条件运算符,语法格式为:

表达式1 ? 表达式2 : 表达式3

条件运算符是C语言中唯一的一个三目运算符,其求值规则为:如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。

上面的 if else 等价于:

max = (a>b) ? a : b;

该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max


♦逗号表达式

格式:exp1,exp2,exp3,...expn

逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行,整个表达式的结果是最后的表达式的结果。这是一个很特殊的表达式,如下所示:

#include <stdio.h>
int main(void)
{
int a, b=0, c=0;
int d = (c = 1,a = 1, b -= 2, c += 2);
printf("%d\n", d);

return 0;
}

从上面的例子运行出的结果为:3, 结果有可能会受到前面代码的影响!

下面来做一道练习题,主要考察的是自增自减以及逗号表达式

#include<stdio.h>
int main(void)
{
int a, b, c;
a = 4;
c = ++a;
b = ++c, c++, ++a, a++;
b += a++ + c;
printf("a = %d -- b = %d -- c = %d\n", a, b, c);
return 0;
}

在上面代码当中需要注意:逗号表达式的规则,以及自增运算符的前置与后置区别。


????下标引用操作符

下标引用操作符就是访问数组下标的那个操作符,下标从都是从0开始的,依次类推下来

举例说明:

假设,拿出数组名第5个元素。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("arr = %d\n",arr[4]);

如上所示:这样访问数组名当中下标当中4,就可以找到数组名第个元素。这里面的方括号 [ ] 就是下标引用操作符,通过下标来找到数组名的元素,是访问具体某一个元素。