【时时三省】(C语言基础)赋值表达式和赋值语句和变量赋初值
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
赋值表达式和赋值语句
在C程序中,赋值语句是用得最多的语句。实际上,C语言的赋值语句属于表达式语句,由一个赋值表达式加一个分号组成。其他一些高级语言(如BASIC,FORTRAN,COBOL,Pascal等)有赋值语句,而无“赋值表达式”这一概念。这是C语言的一个特点,使之应用灵活方便。
前面已经提到,在一个表达式中可以包含另一个表达式。赋值表达式既然是表达式,那么它就可以出现在其他表达式之中。例如:
if ( ( a = b ) > 0 ) max = a ;
按一般理解,if后面的括号内应该是一个“条件”,例如可以是
if ( a > 0 ) max = a;
现在,在a的位置上换上一个赋值表达式a = b,其作用是:先进行赋值运算(将b的值赋给a ),然后判断a是否大于0,如大于0,执行max = a。请注意,在if语句中的a = b不是赋值语句,而是赋值表达式。如果写成
if ( ( a = b ; ) > 0 ) max = a ;
在C程序中,赋值语句是用得最多的语句。/ /“a = b;”是赋值语句
在C程序中,赋值语句是用得最多的语句。就错了。在if的条件中可以包含赋值表达式,但不能包含赋值语句。由此可以看到,C语言把赋值语句和赋值表达式区别开来,增加了表达式的种类,使表达式的应用几乎“无孔不入”,能实现其他语言中难以实现的功能。
注意:要区分赋值表达式和赋值语句。
赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。
变量赋初值
从前面的程序中可以看到:可以用赋值语句对变量赋值,也可以在定义变量时对变量赋以初值。这样可以使程序简练。如:
int a = 3;/ /指定a为整型变量,初值为3
float f = 3.56 ;/ /指定f为浮点型变量,初值为3.56
char c = ' a ';/ /指定c为字符变量,初值为’a '
也可以使被定义的变量的一部分赋初值。
例如:int a , b,c = 5;
指定a,b,c为整型变量,但只对c初始化,c的初值为5。
如果对几个变量赋予同一个初值,应写成
int a = 3,b = 3,c = 3;
表示a,b,c的初值都是3。不能写成
int a = b = c = 3;
一般变量初始化不是在编译阶段完成的(只有在静态存储变量和外部变量的初始化是在编译阶段完成的),而是在程序运行时执行本函数时赋予初值的,相当于执行一个赋值语句。