c语言中规定 赋值运算符的左边必须是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中规定 赋值运算符的左边必须是啥?相关的知识,希望对你有一定的参考价值。

c语言中规定 赋值运算符的左边必须是什么?

赋值运算符的左边必须是变量。

简单赋值运算符记为“=”,由“= ”连接的式子称为赋值表达式。其一般形式为:

变量=表达式

例如:

x=a+bw=sin(a)+sin(b)y=i+++--j

赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性,因此a=b=c=5可理解为a=(b=(c=5))。

在其它高级语言中,赋值构成了一个语句,称为赋值语句。 而在C中,把“=”定义为运算符,从而组成赋值表达式。 凡是表达式可以出现的地方均可出现赋值表达式。

例如:式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x,故x应等于13。

扩展资料

赋值运算符的作用是把右侧表达式的值存入左侧变量中,C语言中赋值操作是作为一种表达式来处理的。

赋值运算符(=)可以和算术运算符(+,-,*,/,%)及双目运算符(&,|,^,>>,<<)组合成一个复合赋值运算符。但需要注意的是复合赋值运算符的两个组成符号之间不能有空白字符。

参考技术A c语言中规定 赋值运算符的左边必须变量,不能是常量。
例如:int i=1;i就是一个变量。
赋值操作符(=)用于对变量赋值,左边必须是变量,右边是可以当成数字使用的内容,赋值操作符的优先级很低,但是比,优先级高。
多个赋值操作符从右向左计算。
复合赋值操作符(+=,-=,*=,/=),其优先级和赋值操作符的优先级一样。
swap.c
#include <stdio.h>
int main()

int num = 3, num1 = 7; /*int num2 = 0;
num2 = num;
num = num1;
num1 = num2;*/
/*num = num + num1;
num1 = num - num1;
num = num - num1;*/
num = num - num1;
num1 = num + num1;
num = num1 - num;
printf("num是%d,num1是%d\n", num, num1);
return 0;
参考技术B 赋值运算符左侧只能是变量,而不能是常量或者表达式。右侧可以是表达式包括赋值表达式。规定最左边变量所得到的新值,就是整个赋值表达式的值,
如果赋值运算符的两侧类型不一致,在赋值前系统将自动先把右边的表达式所求得的数值按赋值号左侧变量的类型进行转换,
就这么多了,哪里不完全待修改还请指正。
参考技术C 运算符左边必须是变量 参考技术D 赋值运算符左边必须是一个变量,不可以是一个常量,也不可以是一个表达式,如a+b=c是非法的。

NO.5 C语言——运算符

运算符主要分为以下5类:

●算术运算符

●关系运算符

●逻辑运算符

●位逻辑运算符

●逗号运算符



赋值运算符"=":

1、赋值运算符是从右向左结合的,也就是先计算等号右边的式子,然后赋值给左边;

    比如:int i = 1+9;    

    //先计算1+9的值是10,然后把10这个值赋值给int型的变量i


2、只能赋值给变量,不能赋值给表达式。

    比如:int a+b = 1+9;        

    //这种赋值方法是错误的,因为a+b是一个表达式


1

算术运算符


    一、算术运算符包括两个单目运算符(正、负)和5个双目运算符(加+。减-、乘*、除/、取余%)

    我们主要讨论一下取余%:

    取余就是取一个数的余数,比如7%3,它的值就是1,因为7/3=2...1

    再例如7%4,它的值就是3,因为7/4=1...3

我们来看一串代码:

#include <stdio.h>int main(){  int a, b, c;  a = 5;  b = 7;  c = b % a;  printf("c的值是:%d",c); return 0;}

输出结果就是“c的值是:2”


    二、自增(++)与自减(--)运算符

所谓的自增就是自己加上1,自减就是自己减去1

例如:

sum = a++;  //++后缀相当于先把a的值赋值给sum,再进行自加运算sum = ++b;  //++前缀相当于变量b先进行自加运算,再把自加后的值赋值给sumc--;--d;



2

关系运算符


一、关系运算符

    关系运算符包括大于“>”、小于“<”、等于“==”、小于等于“<=”。大于等于“>=”和不等于“!=”


二、关系表达式:

    关系运算符用来比较两个值的大小,如果满足条件,则为真值,否则为假值。

比如:9>5    /*关系成立,结果为真*/

        9==5  /*关系不成立,结果为假*/

我们来看一串代码:

#include <stdio,h>int main(){
int a, b, c; a = 5; b = 10; c = 15;
if(a < b) printf("a的值比b小"); else printf("a的值比b大");
  if((a + b) == c)  printf("a加上b等于c");  else printf("a加上b不等于c");   return 0;}


3

逻辑运算符


逻辑运算符根据表达式的真假返回真值或假值。在C语言中,非零为真值,而假值总是0


一、 三种逻辑运算符

符号
功能
&&
逻辑与
||
逻辑或

单目逻辑非


二、使用方法:

Result = Fun1 && Fun2;    //当Fun1和Fun2都为真的时候,Result的值才为真Result = Fun1 || Fun2;    //当Fun1和Fun2其中一个为真的时候,Result的值为真Result = !Fun2;           //当Fun2为假的时候,Result的值为真,反之,当Fun2的值为真的时候,Result的值为假


三、举例:

     我们可以通过布尔类型判断,也可以通过函数返回值判断

#include <stdio.h>#define F 0#define T 1                //这两个是前面所提到过的常量赋值方法int main(){ int Result;   Result = F && T;   printf("%d\n",Result);    //这里输出的Result的值是假(0)    Result = F || T;   printf("%d\n",Result);    //这里输出的Result的值是真(非零)    Result = !T;   printf("%d\n",Result);    //这里输出的Result的值是假(0) return 0;}



4

位逻辑运算符


位逻辑运算符包括与、或、非和取补。

一、位逻辑运算符                                                          

符号
功能
&
位逻辑与(双目运算符)
|
位逻辑或(双目运算符)

位逻辑非(双目运算符)
~
取补(单目运算符)

我们目前稍作了解(知道)即可,不要在意那些细节哈哈哈


5

逗号运算符


在C语言中,可以用逗号将表达式分割开,整个表达式的值就是最后一个表达式的值。

一、我们简单的介绍                                                                1、先来看第一串代码:

value = 1+2, 3+4, 5+6;

    我们之前说过,逗号表达式的值是最后一个表达式的值,也就是说这个表达式的值是5+6,也就是11,但是这是错误的。

    我们还要关注优先级的问题,因为赋值运算符(=)的优先级比逗号运算符的优先级高,所以赋值运算符优先被执行,也就是先执行value= 1+2这个过程,然后才计算后面的表达式,所以这个表达式的值,也就是value的值是3


2、我们再来看一串代码:

value = (1+2, 3+4, 5+6);

    这个value的值就是11,还是优先级的问题,括号运算符的优先级高于赋值运算符,所以表达式优先计算括号内的逗号表达式,值为11,然后再将值赋值给value,所以value的值是11







手把手教你学编程



以上是关于c语言中规定 赋值运算符的左边必须是啥?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中num是啥意思

C语言中num/=10是啥意思

C语言中,赋值运算符两边应该注意的全部问题?非常感谢!

C语言基础学习运算符-赋值运算符

c语言赋值是啥?

C语言,自动类型转换怎么做?