C语言赋值运算符

赋值运算符与代数里面的等号相同,即“=”。赋值运算符的作用是把运算符右边的表达式的值赋给其左边的变量,结合性是从右向左。例如:

        a=5;

该语句的作用是把5赋给变量a,即把5存入变量a所对应的存储单元里面。

赋值运算符号“=”之前加上其他运算符,就可以构成复合赋值运算符,如+=,-=、/=等。C语言中常用的赋值运算符如表所示。

C语言赋值运算符

赋值运算符我们有以下几点认识:

(1)赋值运算符“=”左边必须是变量,右边可以常量、变量,也可以是函数调用或表达式。例如下面的赋值方式都是合法的。

        ch='a';
        b=c;
        s=a*b/c-12.34
        d=a*b*sin(A)/2.0;

在赋值的过程中,赋值运算符的右边常量、变量、函数或表达式的值不是左边变量的类型时,需要进行自动类型转换或强制类型转换。例如:

        int a; a='b';

定义一个整型变量a,将字符'b'赋值变量a。这是两个不同的数据类型,在赋值过程中,系统自动的将字符'b'转换成整型数据,即取字符'b'的ASCII码值98,赋值给变量a。

        double d;
        int a;
        a=(int)d%5;

求余的两个操作数必须为整型数,而d为double型数据,因此要将其转换成整型,从级别比较高的数据类型向级别比较低的数据类型转换时需要进行强制类型转换。

(2)赋值与运算符“=”与数学中的等号“=”看起来相同,但是它们的含义、作用完全不同。例如:

        a=a+2;

在数学中,这个式子是不成立的,因为式子的左边和右边是不相等的。而在C语言中,这个式子是完全正确的,它表示的含义是将变量a当前的值加2,再把结果赋给变量a。

(3)复合赋值运算符是由其他运算符与基本的赋值运算符组合而成的。复合赋值运算符的左边必须是一个变量,右边可以是常量、变量、函数或表达式,当右边为表达式时,要将右边的所有部分都看成是一个整体,不能把它们开分。

例如:
* a+=3;相当于:a=a+3;
* b*=a;相当于b=b*a;
* h/=x+y;不能理解为:h=h/x+y;,应该理解为h=h/(x+y);,它表示的是h除以x加y的和,然后将商赋给h
* a+=b+5;相当于a=a+(b+5);
* a*=b-c;相当于a=a*(b-c);
* a<<=b+c;相当于a=a<<(b+c);

采用这种复合赋值运算符,一方面简化了程序,另一方面提高了编译的效率。

赞(0)

评论 抢沙发

评论前必须登录!