变量的赋值和赋值运算符

赋值运算符用于给变量赋值,由赋值运算符组成的表达式成为赋值表达式。

赋值运算符的含义是将赋值运算符右侧表达式的值赋给左侧的变量,再C语言中赋值运算的操作具有方向性,没有“等号两侧操作数的值相等”的意思,因此,等号左侧只能是标识一个特定存储单元的变量名。

例如:

x=x+1     意为取出x的值加1后再存入x,在前面已经为x赋值为1,再执行x=x+1后果该数的值就变成2了。也就是说在赋值表达式x=x+1中,赋值运算符左侧的变量x与右侧的变量表示的值具有不同的含义。右侧的x代表赋值操作之前x的值,实际对x进行的是“读”操作,而中的侧的x代表赋值操作之后x的值,实际对x进行的是“写”操作。在计算含有不同类型运算符的表达式时,要考虑运算符的优先级,根据优级确定运算的顺序,即先执行优先级高的运算,然后再执行优先级低的运算。由于赋值表达式x=x+1中右值是一个算术表达式,而算术运算符的优先级高于赋值运算符的优先级,因此x=x+1的计算过程是“先计算x+1的值,然后再将x+1的值赋值给x”。

在C语言中,赋值表达式的值被规定为运算完成后左操作数的值,类型与左操作数相同,因此,赋值表达式x=x+1的值为左侧变量x的值。

根据运算符的结合性来确定运算的顺序。运算符的结合性有两种:一种是左结合,即自左向右计算;另一种是右结合,即自右向左计算。C语言中需要两个操作数的算术运算符是左结合的。例如,计算算术表达式x/y*z时,相当于计算算术表达式(x/v)*z,而非x/(y*z),即从左向右先计算x/y的值,然后再将xy的值与z的值相乘。而赋值运算符则是右结合的。

例如下面两条语句是等价的:

a=b=c=0;

a=(b=(c=0));

执行时是从右向东把最右侧的表达式的值依次赋值给左侧的变量。像上面这种形式的赋值表达式称为多重赋值表达式,一般用于为多个变量赋予相同的数值。

例:

#include<stdio.h>
int main()
{
	int x = 1;
	x = x + 5;
	printf("%d",x);
	return 0;
}

输出:

6


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值