在C语言中复合赋值运算符有什么样的作用?

Python016

在C语言中复合赋值运算符有什么样的作用?,第1张

赋值运算符当中,还有一类C/C++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁。

Total=Total+3

乍一看这行代码,似乎有问题,这是不可能成立的。其实还是老样子,'='是赋值不是等于。它的意思是本身的值加3,然后在赋值给本身。为了简化,上面的代码也可以写成:

Total+=3

复合赋值运算符有下列这些:符号 功能

+=加法赋值 =减法赋值 *=乘法赋值 /=除法赋值 %=模运算赋值 左移赋值 ルAA

右移赋值 &=

位逻辑与赋值 位逻辑或赋值 =1

=位逻辑异或赋值

上面的十个复合赋值运算符中,后面五个我们到以后位运算时再说明。那么看了上面的复合赋值运算符,有人就会问,到底Total=Total+3;与Tota

tal+=3

有没有区别? 答案是有的,对于A=

A=A+1

+1,表达式A被计算了两次,对于复合运算符

A+=1

,表达式A仅计 算了一次。一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值运算符,也会加大程序的开销,使效率降低。

要点1: *=,+=,-=,%= 等符号的应用是同道理的: 即把左边的移过右边运算(右边用括号包住,表示先运算),结果再给左边(注意左边只能是变量,不可为表达式)A += B 等价于A = A + (B)(B可以是值或表达式,这里的=仍是赋值号哦,B打括号是因为它可以是表达式) 如 x += 1===== x= x+1x += 1+2+3===== x =x+(1+2+3)x += a+b+1 ==== x= x+(a+b+1)要点2:就个这样的符号的运算,则从最右边的那个开始计算,一直到左边例如: A += B %= A -= B--------------3------2----1(3个这样的符号)从*最右边*来分析(按符号顺序): 1: A=A-(B) ,得到了A的新值2:B = B%(A), 得到了B的新值 (注意该A是新值哦) 3: A=A+(B), 再次得到了A的新值 (注意右边的A也是1的新值,B是2的新值) 懂了上面,你应该可以分析自己的了~~~

c语言中+=是复合赋值运算符

复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。

即:a+=1等价于a=a+1。

什么是C语言:

C语言是一门通用的计算机编程语言,广泛应用于底层开发。

C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言,保持着良好跨平台的特性。

由于C语言的各大优点使得各大开发厂商纷纷使用,并且各个厂商都有了自己的C语言,这就使得各厂商的C语言语法出现差异。

为了避免这种情况,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。

并且C语言是一门面向过程的编程语言,编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。其中MSVC便是微软的C语言编译器,VS2019中的C语言便是MSVC编译器。