【编程基础】C语言复合赋值运算符

在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符。复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常看到这样的语句:

n += 5;

这个语句相当于:

n = n + 5;

C语言中有如下的复合赋值运算符:

n += a; 相当于n = n + a; n -= a; 相当于n = n - a; n *= a; 相当于n = n * a; n /= a; 相当于n = n / a; n %= a; 相当于n = n % a; n <<= a; 相当于n = n << a; n >>= a; 相当于n = n >> a; n &= a; 相当于n = n & a; n ^= a; 相当于n = n ^ a; n |= a; 相当于n = n | a;

注意:如果右边不只是一个变量而是一个表达式,则需要看成一个整体.

比如: n /= a * b + c >> d 相当于 n = n / (a * b +c >> d),右边作为一个整体加括号。

即使是有同样优先级的也需要,请看下面的情况:

int n = 3; int m = 13; n *= 12 / m;

如果不加括号而是直接写成另外一种:n = n * 12 / m,显然这个计算结果大于0,而上面的为0。

复合运算要注意以下:

  1. 复合运算符左边必须是变量;
  2. 复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。
  3. 复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海天一树

小朋友学Python(28):join方法和eval方法

一、join方法 语法: str.join(sequence) 功能: join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串 参数: seq...

26710
来自专栏抠抠空间

字典 (dict) 的增删改查及其他方法

一、字典的简介     字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果...

2467
来自专栏技术之路

详解c++指针的指针和指针的引用

展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传...

1836
来自专栏zingpLiu

Go语言的数组

在 Go 语言里,数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连续块。数组存储的类型可以是内置类型,如整型或者字符串,也可以是某种结构类型。

914
来自专栏前端知识分享

js数组常用方法总结

最近工作中经常用到数组操作,每次都傻傻不知道怎么用,今天有时间整理了一下,希望对大家有帮助!这些基础的知识,要熟记于心。

833
来自专栏赵俊的Java专栏

Python 基础语法

1305
来自专栏CaiRui

Mysql-6-数据类型和运算符

1.mysql数据类型 (1)数值数据类型:包括整数类型tinyint、smallint、mediumint、int、bigint,浮点小数类型float和do...

16710
来自专栏问天丶天问

Linux 字符串截取

1525
来自专栏企鹅号快讯

Python基础知识3:re正则表达式

正则表达式(或RE)是一种小型的、高度专业化的编程语言,内嵌在Python中,仅做字符的匹配。 1、字符类型: 普通字符和元字符; 1)普通字符:大多数的字符和...

1727
来自专栏ShaoYL

【C语言】指针

2896

扫描关注云+社区