C语言中的赋值语句

Python014

C语言中的赋值语句,第1张

变量

赋值

表达式

例如:

int

i

i=10

完整代码:

#include

void

main(){

int

i

i=10

printf("i=%d",i)

}

在c语言中提供了10种复合的赋值运算符,他们是:+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=其中前五种是算术运算的,后五种是位运算的

例如:

#include

void

main(){

int

i

i=10

i+=5

printf("i=%d",i)

}

我们都知道基本的赋值运算符是"=",他的优先级别低于其他的运算符,所以对该运算符往往最后读取。下面和大家分享一下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=8a=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