在C语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算符、逗号运算符等等,那今天我们就重点来给大家讨论一下关于逗号运算符的一些运算规则。 首先逗号运算符是非常简单的,对于初学者来说,只要在相应的IDE环境中进行测试便可以得到想要的结果;但是 ...
在c语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算符、逗号运算符等等,那今天我们就重点来给大家讨论一下关于逗号运算符的一些运算规则。
首先逗号运算符是非常简单的,对于初学者来说,只要在相应的ide环境中进行测试便可以得到想要的结果;但是对于逗号运算符存在很多变种的题目,在一些笔试面试题中经常会见到,但是在真正的实际开发用的却不是很多,既然有网友问道这样的题目,那今天我就简单的给大家解释一下,什么是逗号运算符?
逗号运算符是指在c语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
举个例子:
int a1,a2,b=2,c=7,d=5; // 第1行
a1=(++b,c--,d+3); // 第2行
a2=++b,c--,d+3; //第3行
对于给a1赋值的代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是(d+3)的值,为8,所以a1的值为8。
对于给a2赋值的代码,也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)虽然最终表达式的值虽然也为8,但b=4(第2行代码运算完时,b=3,即第3行代码运行时,b的值为4),所以a2=4
再来一个关于结合性的例子:
int i=24;
int n = (i++,i++,i++,i++); // n == 27
因为逗号运算符的结合性是自左向右,所以四个i++会依次运行,但是最后一个i++在赋值之后才进行运算,所以最终返回27。
如您对本文有疑问或者有任何想说的,请
点击进行留言回复,万千网友为您解惑!
相关文章:
-
-
详解C++11强类型枚举
1.传统枚举类型的缺陷枚举类型是c/c++中用户自定义的构造类型,它是由用户定义的若干枚举常量的集合。枚举值对应整型数值,默认从0开始。比如定义一个描述性别的枚...
[阅读全文]
-
-
-
-
详解C++纯虚函数与抽象类
1.虚函数1.1虚函数简介虚函数可以毫不夸张的说是c++最重要的特性之一,我们先来看一看虚函数的概念。在基类的定义中,定义虚函数的一般形式为:virtual 函...
[阅读全文]
-
c++ 面向对象设计五大原则
面向对象设计(ood)是面向对象编程(oop)必不可少的一个环节,只有好的设计,才能保障程序的质量。面向对象设计的主要任务就是类的设计,不少面向对象(oo)的先...
[阅读全文]
-
c++代码调试方式的几点建议
1.代码调试的重要性代码调试在程序开发阶段占有举足轻重的地位,可见代码调试的重要性。但是有一点必须强调:程序是设计出来的,而不是调试出来的。这是所有程序员必须牢...
[阅读全文]
-
c++ 如何合并两个有序链表
1.题目要求这是一道求职面试时经常要求手写或者机试的经典题目。已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序。结果链表要包含head...
[阅读全文]
-
c++如何实现跳表
引言二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现。如果数据存储在链表中,就真的没法用二分查找算法了吗?实际上,只需要对链表稍加改造,就可以支持类...
[阅读全文]
-
-
网友评论