C语言中赋值语句有什么规则要求
发布时间:2025-05-13 23:09:06 发布人:远客网络
一、C语言中赋值语句有什么规则要求
1、赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式。
2、在赋值语句的使用中需要注意以下几点:
由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式变量=(变量=表达式);是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量=变量=?=表达式;
3、由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式变量=(变量=表达式);是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量=变量=?=表达式;
4、例如: a=b=c=d=e=5;按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;
5、注意在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如: int a=5,b,c;
6、在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的: int a=b=c=5必须写为 int a=5,b=5,c=5;而赋值语句允许连续赋值。
7、注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
8、下述语句是合法的: if((x=y+5)>0) z=x;语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的: if((x=y+5;)>0) z=x;因为x=y+5;是语句,不能出现在表达式中。
二、在C语言中赋值语句有什么作用
1、赋值语句用于更新指定变量的值,通常把赋值语句的左边称为左值,右边称为右值,C++里面还区分了左值和右值
2、赋值语句是有返回值的,也就是说,可以连续赋值,具体赋值方式是从右往左赋值(压行神器)
3、拥有const前缀属于不可更改的左值,只能在初始化的时候被赋值。
4、右值可以是变量,此时使用的是变量的值;左值也可以是变量,此时使用的是变量的地址;但是表达式只能作为右值。
三、C语言中的变量可以赋值吗
C语言中定义变量的格式非常简单,如下所示:
首先要强调的一点是:最后的分号千万不要丢了。变量的定义是一个语句,我们说过,语句都是以分号结尾的。
变量名”就是你想给这个变量起个什么名字,通常都是用字母。比如:
就表示定义了一个整型变量 i。变量名的命名规则稍后会详细地讲。
那么变量定义好之后怎么将数放到这个变量里面呢?首先要理解的是,将一个数字放到一个变量中,这个动作叫“赋值”。
赋即“给予”的意思,所以“给变量赋值”意思就是将一个值传给一个变量。那怎么赋值呢?是通过赋值运算符=,赋值的格式是:
它的意思是将=右边的数字赋给左边的变量。比如:
这就表示将 3赋给了变量 i,此时 i就等于 3了。
这里需要注意的是,这里的=跟数学中的“等于号”是不一样的。在刚开始学习C语言的时候,在这一点上大家很难从数学的思维中转变过来。在C语言中=表示赋值,即将右边的值赋给左边的变量,而不是左边的变量等于右边的值。
那C语言中有没有表示相等的运算符呢?这就是双等号==。这个运算符就与数学中的“等于”是同一个意思了。
以上就是变量的定义和赋值,它们是分成两步写的。也可以将它们合成一步,而且事实上,在实际编程中用得最多的也是合二为一的写法。那么怎么合在一起呢?很简单,形式如下:
在定义变量时也可以一次性定义多个变量,比如:
中间还是用逗号隔开,最后别忘记输入分号
最后需要注意的是,在较老的 C89/C90标准(也称 ANSI C标准)中,变量只能在程序的开头定义,或者说变量定义的前面不能有其他非声明或非定义的语句。比如在C语言中像下面这种写法就是错误的
在 VC++6.0或者 VS2010下编译的时候会提示下面的错误:
但是这种写法在.cpp文件(C++源文件)中是允许的,.cpp文件中可以在程序的任意位置定义变量。
其实这与语言本身并没有什么关系,并不是说C语言中变量就不能定义在程序中间。
这实际上是与标准有关系的,有些编译器使用的是 C89标准,C89标准要求所有声明(比如函数声明、变量定义)必须要写在程序、函数或复合语句的开头,而 C99的新特性允许语句和声明按任意顺序排列,只要遵循“先声明后使用”的原则就行。