精华内容
下载资源
问答
  • 复合赋值运算符
    千次阅读
    2021-05-21 04:44:34

    C语言复合赋值运算符

    在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。

    复合运算要注意以下:

    复合运算符左边必须是变量;

    复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。

    复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。

    更多相关内容
  • 复合赋值运算符优先级 Compound-assignment operators provide a shorter syntax for assigning the result of an arithmetic or bitwise operator. They perform the operation on the two operands before ...

    c语言复合赋值运算符

    Compound-assignment operators provide a shorter syntax for assigning the result of an arithmetic or bitwise operator. They perform the operation on the two operands before assigning the result to the first operand.

    复合分配运算符为分配算术运算符或按位运算符的结果提供了较短的语法。 在将结果分配给第一个操作数之前,它们先对两个操作数执行运算。

    Java中的复合赋值运算符 ( Compound-Assignment Operators in Java )

    Java supports 11 compound-assignment operators:

    Java支持11种复合赋值运算符:

    
    +=   assigns the result of the addition.
    -=   assigns the result of the subtraction.
    *=   assigns the result of the multiplication
    /=   assigns the result of the division.
    %=   assigns the remainder of the division.
    &=   assigns the result of the logical AND.
    |=   assigns the result of the logical OR.
    ^=   assigns the result of the logical XOR.
    <<=  assigns the result of the signed left bit shift.
    >>=  assigns the result of the signed right bit shift.
    >>>= assigns the result of the unsigned right bit shift.

    用法示例 ( Example Usage )

    To assign the result of an addition operation to a variable using the standard syntax:

    使用标准语法将加法运算的结果分配给变量:

    
    //add 2 to the value of number
    number = number + 2;

    But use a compound-assignment operator to effect the same outcome with the simpler syntax:

    但是,使用复合赋值运算符以更简单的语法实现相同的结果:

    
    //add 2 to the value of number
    number += 2;

    翻译自: https://www.thoughtco.com/compound-assignment-operator-2034054

    c语言复合赋值运算符

    展开全文
  • C语言中还提供了特殊的复合赋值运算符的应用。


    前言

    除了基本的算术运算符之外,C语言中还提供了特殊的复合赋值运算符,复合赋值运算就是把“运算”和“赋值”两个动作结合起来。


    一、什么是复合赋值运算符

    赋值符“=”之前加上其他二目运算符可构成复合赋值符,经常使用的复合运算符主要有算术复合运算符和位复合运算符。复合赋值运算符和普通赋值运算符的优先级都是相同的,且都具有右结合性,运算过程相当于变量的值累加上右边表达式的值,存放到该变量中,例如x*=y+3等价于x=x*(y+3)。

    二、程序实例

    代码如下:

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

    运行结果:
    复合赋值运算符的应用

    结果分析:

    • 对于代码中的语句a+=a-=a*=a;来说,根据赋值运算符的结合性,表达式的实际运算过程是:a=a*a、a=a-a、a=a+a,因此最后计算结果为0.
    • 对于语句a*=b=c;来说运算过程为:b=c、a=a*b。
    • 语句b*=c+=a/=c+2,的计算过程为:a=a/(c+2)、c=c+a、b=b*c。

    拓展应用:
    应用复合的赋值运算符时经常会出错,在写表达式的过程中,最好利用圆括号把表达式的主要功能括起来,不要让编译器来分析表达式中具体的操作数的值,例如表达式a+b+=c+=3是不合法的表达,应该加上(),正确的表达式是a+(b+=c+=3)。


    总结

    以上就是今天要讲的内容,本文仅仅简单介绍了C语言中复合赋值运算符的应用。

    展开全文
  • C语言之复合赋值运算符

    千次阅读 2022-02-20 17:01:46
    1、复合赋值运算符(compound assignment operator)是由赋值运算符“=”与其他运算符结合而成的。先决条件是“=”右方的源操作数必须有一个和左方接收赋值数值的操作数相同。 语法格式如下: a op= b; 含义:...

    1、复合赋值运算符(compound assignment operator)是由赋值运算符“=”与其他运算符结合而成的。先决条件是“=”右方的源操作数必须有一个和左方接收赋值数值的操作数相同。

    语法格式如下:

    a op= b;

    含义:将a的值与b的值以op运算符进行计算,然后将结果赋值给a。

    例如:

    int a=30;

    a+=3;/*a=a+3*/

    结果a=33。

    案例程序如下:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int a;
    	
        a=30;
        printf("a= %d \n",a);
        printf("-------------------\n");
    	a+=3;/*a=a+3*/
    	printf("a= %d \n",a);	
        system("pause");  
        return 0;
     }
    

    运行结果如下:

    复合赋值运算符有以下10种:

    1. +=          加法赋值运算
    2. -=           减法赋值运算
    3. *=           乘法赋值运算
    4. /=           除法赋值运算
    5. %=         求余赋值运算符
    6. &=          AND位赋值运算符
    7. |=           OR位赋值运算
    8. ^=          NOT位赋值运算
    9. <<=        位左移赋值运算
    10. >>=        位右移赋值运算

    本专栏还有运算符的相关总结分享,持续更新中,未完待续……

    展开全文
  • 问题引出:我们知道对于一个int类型的变量与一个double类型的变量...解决方案二:利用复合赋值运算。 附:对于两个同类型的变量进行交换其值。可以用一个临时变量来中转。也可以用异或运算来完成↓↓↓ ...
  • # 复合赋值运算符 ''' 名称 运算符 示例 加法赋值运算符 += c += a等价与 c = c + a 减法赋值运算符 -= c -= a等价与 c = c - a 乘法赋值运算符 *= c *= a等价与 c = c * a 除法赋值运算符 /= c /= a等价与 c = c /...
  • 4、算数运算符 + - * / // % ** //取商 %取余 **幂次运算 # + - * / % // ** # 案例:求梯形的面积 # a = float(input('请输入梯形的上底长度:')) # b = float(input('请输入梯形的下底长度:')) # h = float(input...
  • 复合赋值运算符,除了书写简单、使代码更加简洁的优势之外,还有一个很重要的优点。 能自动在代码底层完成数据类型的转换 也是因为这个优点,建议尽量使用复合赋值运算符。 实例 @Test public void run() { //...
  • 我们知道 a += 5 等价于 a = a + 5,假设 a 是 byte 类型,那么 a = a + 5 属于 byte 类型与 int 类型进行运算,最后转换为 int... // 复合赋值运算符会进行类型转换,等价于 a = (byte)(a + 5) a++; // a++ 为 a = a +
  • Python复合赋值运算符

    2022-03-08 17:34:56
    复合赋值运算符可能刚一听觉得有点拗口,但是一旦提到赋值的话就会有等号=运算符号,那么什么是复合呢,看看下面的的表格大家就会很清楚,在所有的数学运算符的右边都加上了=等号运算符,这种写法的运算符就叫做复合...
  • 这篇博客对复合赋值运算符可能带来的性能优化进行讨论,内附可编译通过的例程。
  • 下表列出了“+=、-=、*=、/=、%=”复合赋值运算符的描述及例子。复合赋值运算符同简单赋值运算符一样,也是双目运算符,需要两个操作数。不同的是,复合赋值运算符要先执行运算符自身要求的运算后,再将运算后的结果...
  • 二,复合赋值 例子 a +=5;//(注意+=之间不要有空格) //等价于 a = a + 5; a +=(a+100)/2; //等价于 a = a + (a+100)/2; //先将右面的式子算完再进行结合 a *= a + 12; //等价于 a = a*(a+12); a /= 9+12; //等价...
  • 复合赋值运算符“+=、-=、*=、/=、%=”详解

    万次阅读 多人点赞 2021-03-13 16:11:53
    下表列出了“+=、-=、*=、/=、%=”复合赋值运算符的描述及例子。 复合赋值运算符“+=”,表示的意思是先将运算符左边操作数指向的变量值和右边的操作数执行相加操作,然后再将相加的结果赋值给左边的操作数指向的...
  • 加法操作复合赋值运算符运算符优先级问题基本运算符运算符 说明 and, or, not 布尔与, 布尔或, 布尔非 is, is not 同一性判断, 判断是否为同一个对象 , >=, !=, == 比较值是否相当, 可以连用 &, |, ^ 按位与,...
  • 复合赋值运算符 ⽐较运算符 逻辑运算符 1. 算数运算符 注意: 混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + - 2. 赋值运算符 单个变量赋值 num = 1 print(num) 多个变量赋值 num1, ...
  • 代码中主要演示的,在python当中如何使用,复合赋值运算符,以便提升开发效率 # +=加法赋值运算符 a = 100 a += 1 print(a) # a的结果为101 # -=减法赋值运算符 b = 100 b -= 1 print(b) # b的结果为99 # *=乘法...
  • 复合赋值运算符 : ++ 自加一(有前加和后加)、-- 自减一(有前减和后减)、+= 、 -= 、 *= 、 /= 、 %= 这些都是一元运算符 例子1:num++ int num = 10 ; int number = 10 + num ++ ; //...
  • 复合赋值运算符其中隐含了一个强制类型转换。 byte、short、char在参加运算时结果值会自动转向int byte num1 = 12; byte num2 = 14; num1 += num2; // num1 自动转换为 int num1 = num1 + num2; // 错误 第三行...
  • 在这种情况下, §15.26.2复合赋值运算符 。 摘录:E1 op= E2的复合赋值expression式相当于E1 = (T)((E1) op (E2)) ,其中T是E1的types,只是E1只被计算一次。从§15.26.2引用的一个例子以下代码是正确的:short x ...
  • 原文链接:http://blog.csdn.net/lyh__521/article/details/49622601复合赋值运算符  ...重载复合赋值运算符: 赋值运算符必须定义为类的成员,复合赋值运算符通常也应该定义为成员函数(但并不是必须这样)。 复合赋
  • Day08-复合赋值运算符

    2022-03-27 10:26:55
    在C语言中复合赋值运算符运算符在赋值符前面,完美的规避了把加号减号当作是正负号的问题。例如"i=+1",我们不清楚要表达的是“i=i+1”,还是把正1(+1)赋值给i。 C++ #include using namespace std; int main(){ ...
  • 复合赋值运算符

    千次阅读 2018-10-17 12:48:18
    复合赋值运算符 运算符 描述 实例 += 加法赋值运算符 c += a 等效于 c = c + a -= 减法赋值运算符 c -= a 等效于 c = c - a *= 乘法赋值运算符 c *= a 等效于 c = c * a /= 除法赋值运算符 c /= a 等效于 ...
  • java代码-例子2-4 理解复合赋值运算符
  • java代码-例2-4 理解复合赋值运算符
  • python 零基础学习篇
  • 赋值运算符以下是Java语言支持的赋值运算符-运算符描述例=简单的赋值运算符。将值从右侧操作数分配给左侧操作数。C = A + B将A + B的值赋给C+ =添加AND赋值运算符。它将右操作数添加到左操作数,并将结果分配给左...
  • 赋值运算符赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。   语法:变量名称=表达式内容   在 Java 语言中,“变量...
  • 复合赋值运算符可能刚一听觉得有点拗口,但是一旦提到赋值的...复合赋值运算符运算过程:当解释器执行到复合赋值运算符时,先算复合赋值运算符右侧的表达式,然后再算复合赋值运算符的算数运算,最后算赋值运算 ​

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,788
精华内容 17,115
关键字:

复合赋值运算符

友情链接: 习题1.rar