一、赋值
1.赋值运算符含义是将一个数据赋值给一个变量。其一般的形式为:变量名=表达式
例如 :a=12、a=b c、a=sqrt(7)等在C语言程序里是合法的,但“=”左边为表达式,“=”右边为变量名只是不被编译器所允许的表达式。
注意:C语言中,赋值运算的操作是有方向的,即将右侧表达式的值(也称为右值)赋值左侧的变量,只能是标识一个特定存储单元的变量名。
由于变量名只能出现在赋值运算符的左边,因此它也被称为左值;由于常量只能出现在赋值运算符的右边,因此它也被称为右值。左值可以用作右值,但右值不能用作左值。
赋值运算符的优先级低于算术运算符、关系运算符以及逻辑运算符。由于赋值表达式的值被规定为运算完成后操作数的值,类型与左操作数相同,且赋值运算符的结合性为右结合,因此,C语言还允许这样的赋值形式:
变量1=变量2=变量3=……=变量n=表达式
这种形式称为多重赋值表达式,一般用于多个变量赋予同一个值。由于赋值运算符是右结合,因此执行是把表达式值依次赋给变量n,……,变量1,即上面的形式等价于
变量1=(变量2=(变量3 (……=(变量n=表达式)……)))
2.复合的赋值运算符,其形式如下:
变量 二元运算符=表达式等价于变量=变量 二元运算符 表达式
涉及算数的复合运算符,即 =、-=、*=、/=、%=、&=、|=、^=、<<=、>>=。这种形式更直观,执行效率更高些。
小贴士:将赋值表达式n*=m 4按照n=n*m 2来运算是错误的,事实上应按n=n*(m 2)来运算。
二、C语句的分类
1.控制语句。C语言只有9种控制语:
if~else for()~ continue
switch while ~goto
break do~while return
2.变量定义语句。由类型关键字后变量名,如“int a,b,c;”。值得注意的是,变量定义语句不是可执行语句。它只是将某些信息传递给编译器,通知编译器变量的类型是什么,以便编译器为其预留出相应的大小存储空间,因为不同类型的变量在内存中占据的存储空间大小不同。
3.表达式语句。由表达式后接一个分号构成的语句。
4.函数调用语句。表达式必须是有值的,而函数调用不一定是用返回值。在C语言中,没有专门的输入和输出语句,输入和输出操作通常通过调用输入和输出函数实现。
5.复合语句。两条或两条以上的语句序列,用一对花括号括起来构成的语句。
6.空语句。只有一个分号构成的语句,表示什么也不做,过渡作用。
二、表达式语句
顺序结构是最简单的程序结构。在顺序结构程序中,程序的执行是按照语句书写的顺序来完成,赋值操作是顺序结构中最常见的操作。在C语言中,没有专门的赋值语句赋值操作通常使用赋值表达式后接一个分号(;)构成赋值表达式语句实现。例如“C=100;”这是一个赋值语句表达式。
1.复合语句
两条或两条以上语句序列,用一对花括号括起来构成的语句,称为复合语句,也叫语句块,其形式:
{
语句一;
语句二;
语句N;
}
例如
{
a ;
t=a*2;
y--;
}
在逻辑上形成一个整体,在语法上等同于一条语句,可被当作一条语句来处理,这样就为程序设计带来便利。
2.空语句
在表达语句中,如果没有任何表达式而只是一个分号,则称为空语句,其形式如
; //空语句
自动跳过,不起任何作用。