本文目录一览:

  • 1、C语言赋值运算符与赋值表达式
  • 2、C语言的等于操作符(==)与赋值操作符(=)有什么不同
  • 3、C语言里面赋值和等于的问题
  • 4、c语言的赋值与等于的区分和联系
  • 5、C语言中,赋值与等的本质区别是什么?

C语言赋值运算符与赋值表达式

我们都知道基本的赋值运算符是”=”,他的优先级别低于其他的运算符,所以对该运算符往往最后读取。下面和大家分享一下C语言赋值运算符与赋值表达式,一起来看看吧!

C语言赋值运算符与赋值表达式1

一、赋值运算符与赋值表达式

赋值符号“=“就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:

变量名=表达式

在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。

例:a=12;此表达式读作“将10的值赋值给变量a”。

说明:

a、如果赋值号两边的运算对象类型不一致,系统会自动进行类型转换,转换的规则:将赋值号右边表达式的值的类型转换成赋值号左边变量的类型,

例:inty=3.5;在变量y中最终存储的是整数3。

b、可以将复制表达式的.值再赋值给变量,形成连续赋值。

例如:x=y=25是一个连续赋值表达式,x=y=25等价于x=(y=25),所以表达式x=y=25最终的值为25。

二、复合的赋值运算符

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。其中与算术运算有关的复合运算符是:+=,—=,x=,/=,%=。

两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。

如求表达a+=a—=axa的值,其中a的初值为12。

步骤:

(1)先进行“a—=axa“运算,相当于a=a—axa=12—144=—132。

(2)再进行“a+=—132“运算,相当于a=a+(—132)=—132—132=—264。

C语言赋值运算符与赋值表达式2

其一般形式为:

变量=表达式

例如:

x=a+b

w=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语言中也可以组成赋值语句,按照C语言规定,任何表达式在其未尾加上分号就构成为语句。因此如x=8;a=b=c=5;都是赋值语句,在前面各例中我们已大量使用过了。

类型转换

如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:

实型赋予整型,舍去小数部分。

整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。

字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。

【例3-18】

#include

int main(void){

int a,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

a=c1;

c2=b;

printf(“%d,%f,%d,%c”,a,x,a,c2);

return 0;

}

本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8.88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。

注意:经大家反馈,笔者发现上面的例子容易造成误解,现已对代码进行更改,更改时间 2014-07-04 09:12:45,看评论的读者请注意评论时间,不要混淆。

更改后的代码如下:

#include

int main(void){

int a,c,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

c=c1;

c2=b;

printf(“a=%d, x=%f, c=%d, c2=%c “, a, x, c, c2);

return 0;

}

输出结果:

a=8, x=322.000000, c=107, c2=B

复合的赋值运算符

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=、-=、*=、/=、%=、=、=、=、^=、|=。

构成复合赋值表达式的一般形式为:

变量 双目运算符=表达式

它等效于

变量=变量 运算符 表达式

例如:

a+=5 等价于 a=a+5

x*=y+7 等价于 x=x*(y+7)

r%=p 等价于 r=r%p

C语言的等于操作符(==)与赋值操作符(=)有什么不同

int a;

a=10;

如果输出这句话 printf(“%d\n”,a=10); //结果是输出10

如果是输出

printf(“%d\n”,a==10);  //结果是1   (也就是True)

在C语言中   赋值操作符需要左边的左值是一个可修改的值 (常数不能做左值) 1=2是不行的

返回的值 (也就是这整个表达式的值  是赋值后左值的值)

而等于操作符和大于 小于是一样的  是一种表示判断的操作符  左右两边可以是同类型的变量

返回的是布尔值(  C中表示为  0或非0值   )表示真或假

C语言里面赋值和等于的问题

我想楼主你看错了吧,A%100后的值不可以被赋值如果按你说的表示A除以100的余数不为零,那应该是A%100!=0

c语言的赋值与等于的区分和联系

==是判断,=是赋值,如a==b的意思是“判断a是否等于b,如果是,整个语句的值就为1,否则为0”,而a=b意思是“把b的值赋给a”

C语言中,赋值与等的本质区别是什么?

虽然有很多人回答了,但我还是补充一下,赋值语句的返回值是永远为”真”的;而等号不同,它的返回值取决于两边的数值。赋值号”=”的作用是传递数值,例如把数值3传给(copy)给a:”a=3″;而等号”==”一般用做逻辑判断条件,拿等号两侧的数值来比较,如果相等返回数值为”真”,不相等则返回数值为”假”。希望可以帮到你,祝你愉快!

c语言中附值和等于,c语言中等于和赋值(C语言的赋值=和等于==有什么区别)-风君雪科技博客