C语言入门之数据类型(6)

C语言入门之数据类型(6),第1张

C语言入门之数据类型(6),第2张

算术表达式

是由算术运算符和括号连接的公式。以下是算术表达式的一个示例:

a+b(a * 2)/c(x+r)* 8-(a+b)/7 ++ I sin(x)+sin(y)(++ I)-(j++)+(k-)

赋值运算符和赋值表达式

简单赋值运算符和表达式,简单赋值运算符标记为“=”。由“=”连接的公式称为赋值表达式。其一般形式为:变量=表达式,例如:

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)是合法的。它的意思是给A 5,给B 8,把A和B相加,给X,那么X应该等于13。

在C语言中,也可以形成赋值语句。根据C语言的规定,任何以分号结尾的表达式都是语句。因此,x = 8;a = b = c = 5;它们都是赋值语句,我们在前面的例子中用了很多。

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

1.实数类型被赋予整数类型,小数部分被丢弃。前面的例子2.9已经说明了这种情况。

2.Integer赋给real类型,其值不变,但会存储为浮点,即加上小数部分(小数部分的值为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取值888后只取整数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

复合赋值的编写对于初学者来说可能比较陌生,但是对于编译来说是非常有益的,可以提高编译效率,产生高质量的目标代码。逗号运算符和逗号表达式在

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C语言入门之数据类型(6)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情