C语句————赋值语句

C语句————赋值语句赋值符号 即为赋值运算符 它的作用是将一个数据赋给一个变量

大家好,欢迎来到IT知识分享网。

c语句分为控制语句,函数调用语句,空语句,复合语句,表达式语句。

赋值语句属于表达式语句。

以下为赋值语句的相关介绍。

1.赋值运算符

1.介绍

赋值符号“=”即为赋值运算符,它的作用是将一个数据赋给一个变量。如a=3的作用是执行一次赋值操作,把常量3赋给变量a。也可以将一个表达式的值赋给一个变量

2.复合的赋值运算符

在赋值符=之前加上其他运算符,可以构成复合的运算符。

例如:

a+=3      等价于      a=a+3

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

x%=3     等价于      x=x%3 

      凡二元(二目)运算符(二元运算符是指需要两个操作数才能进行操作的运算符),都可以与赋值符一起组合为赋值运算符。如+=,-=,*=,%=,/=。

2.赋值表达式

       赋值语句实在赋值表达式的末尾加一个分号构成,而赋值表达式是将一个变量和一个表达式连接起来的式子。基本形式为变量+赋值运算符+表达式。它的作用是将一个表达式的值赋给一个变量,所以其具有计算和赋值的双重功能。

       赋值运算符左侧应该是一个可修改的“左值(left value,简称lvalue)”。左值的意思是它可以出现在赋值运算符的左侧,它的值是可以改变的。左值应当为存储空间并可以被赋值。变量可以作左值,算术表达式a+b就不可以作左值,常量因为不能被赋值所以也不能作左值。在赋值运算符右侧的表达式称为“右值(right value,简称rvalue)”,凡是左值都可以作为右值。如:

b=a;         //b为左值

c=b;         //b为右值

赋值表达式中的“表达式”又可以是一个赋值表达式。例如:

a=(b=5);

括号内的b=5是一个赋值表达式,值为5。而整个表达式即可拆分为a=b和b=5两个赋值表达式,因此a=5。因为赋值运算符按照“自右而左”的结合顺序,因此a=(b=5)与a=b=5等价。以下为几个例子: 

a=b=c=5                                        (表达式的值为5,a=5,b=5,c=5)     

a=5+(c=6)                                      (表达式的值为11,a=11,c=6)

a=(b=4)+(c=6)                               (表达式的值为10,a=10,b=4,c=6)

a=(b=10)/(c=2)                              (表达式的值为5,a=5,b=10,c=2)   

把赋值表达式作为表达式的一种,使得赋值操作不仅可以出现在赋值语句中,而且可以以表达式的形式出现在其他语句中(如输出语句、循环语句等)。如:

printf(“%d”,a=b);                           //如果b=3,那么a=3

3.*赋值过程中的类型转换

如果赋值运算符两侧的类型一致,则直接进行赋值。如:

i=234;               //设i为整型变量

此时直接存储整数234进入i的存储单元中。

如果赋值运算符两侧的类型不一致,但都是基本类型时,在赋值时要进行类型转换。类型转换是由系统自动进行的,转换的规则是:

(3)将一个 double 型数据赋给 float 变量时,先将双精度数转换为单精度,即只取6~7位有效数字,存储到 float 型变量的4个字节中。应注意双精度数值的大小不能超出 float 型变量的数值范围。例如,将一个 double 型变量 d 中的双精度实数赋给一个 float 型变量f。

double d=123.e100;               //指数为100,超过了float数据的最大范围

f无法容纳如此大的数,出现错误。

将一个 float 型数据赋给 double 型变量时,数值不变,在内存中以8个字节存储,有效位数扩展到15位。

(4)字符型数据赋给整型变量时,将字符的ASCLL代码赋给整型变量。如:

i=’A’;                 //已定义i为整型变量

因为’A’字符的ASCLL代码为65,因此赋值后i的值为65。

(5)将一个占字节多的整型数据赋给一个占字节少的整型变量或字符变量(例如把占4个字节的 int 型数据赋给占2个字节的 short 变量或占1个字节的 char 变量)时,只将其低字节原封不动地送到被赋值的变量(即发生”截断”)。例如:

int i=289;

char c=’a’;

c=i;

解释如下:     i=289;       0000000100

                       c=33;                           00

所以c的值为33。如果用”%c”输出c,得到字符”!”(其ASCLL值为33)。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126775.html

(0)
上一篇 2025-09-15 22:26
下一篇 2025-09-15 22:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信