正在加载图片...
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语言规定,任何表达式在其未尾加上分号就构成为语句。因此如 8;a=b=c=5:都是赋值语句,在前面各例中我们已大量使用过了。 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型 具体规定如下 1.实型赋予整型,舍去小数部分。前面的例2.9已经说明了这种情况 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 3.字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的 ASCII码值放到整型量的低八 位中,高八位为0 4.整型赋予字符型,只把低八位赋予字符量。 void maine int a, b=322 float x, y=8. 8 char cl=k, c2 printf( %d, %f, %d, %c", a, x, a, c2) int a, b=322 float x, y=8. 88 char cl='k’,c2; printf("%d, %f, %d, %c", a=y, x=b, a=cl, c2=b) 本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值888后只取整数8。x为实型, 赋予整型量b值322,后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2后取其低八位成 为字符型(b的低八位为01000010,即十进制66,按 ASCII码对应于字符B) 复合赋值符及表达式 在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如 +=,=,*,/=,%=,<=,》>=,&=,=,|=。构成复合赋值表达式的一般形式为:变量双目运算符=表达式它等 效于变量=变量运算符表达式例如:a+=5等价于a=a+5x*=y+7等价于x=x*(y+7)r%=p等价于 r=r%p 复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目 标代码。逗号运算符和逗号表达式在 逗号运算符 C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,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;都是赋值语句,在前面各例中我们已大量使用过了。 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。 具体规定如下: 1.实型赋予整型,舍去小数部分。前面的例 2.9 已经说明了这种情况。 2.整型赋予实型,数值不变,但将以浮点形式存放, 即增加小数部分(小数部分的值为 0)。 3.字符型赋予整型,由于字符型为一个字节, 而整型为二个字节,故将字符的 ASCII 码值放到整型量的低八 位中,高八位为 0。 4.整型赋予字符型,只把低八位赋予字符量。 void main(){ 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); } int a,b=322; float x,y=8.88; char c1='k',c2; printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b); 本例表明了上述赋值运算中类型转换的规则。a 为整型,赋予实型量 y 值 8 88 后只取整数 8。x 为实型, 赋予整型量 b 值 322, 后增加了小数部分。字符型量 c1 赋予 a 变为整型,整型量 b 赋予 c2 后取其低八位成 为字符型(b 的低八位为 01000010,即十进制 66,按 ASCII 码对应于字符 B)。 复合赋值符及表达式 在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如 +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。 构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等 效于 变量=变量 运算符 表达式 例如: a+=5 等价于 a=a+5 x*=y+7 等价于 x=x*(y+7) r%=p 等价于 r=r%p 复合赋值符这种写法,对初学者可能不习惯, 但十分有利于编译处理,能提高编译效率并产生质量较高的目 标代码。逗号运算符和逗号表达式在 逗号运算符 C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有