应该给变量起有意义的名字,两个同样类型的变量可以定义在同一行,如int hour,minute;给变量起名有一定的限制,C语言规定必须以字母或下划线_(Underscore)开头,后面可以跟若干个字母、数字、下划线,但不能有其他字符。例如这些是合法的变量名:Abc、_abc_、_123。但这些是不合法的变量名:3abc、ab$。其实这个规则不仅适用于变量名,也适应于所有可以由程序员起名的语法元素,例如以后要讲的函数名、宏定义、结构体、成员名等,在C语言中这些统称为标识符(Identifier)。
还有一点要注意,一般来说应避免使用以下划线开头的标识符,以下划线开头的标识符只要不和C语言关键字冲突都是合法的,但是往往被编译器用作一些功能扩展,C标准库也定义了很多以下划线开头的标识符,所以除非你对编译器和C标准库特别清楚,一般应避免使用这种标识符,以免造成命名冲突。
![]()
4. 赋值
定义了变量之后,我们要把值存到它们所表示的存储空间里,可以用赋值(Assignment)语句实现。printf ] 打印

注意变量一定要先声明后使用,编译器必须先看到变量声明,才知道firstletter、hour和minute是变量名,各自代表一块存储空间。另外,变量声明中的类型表明这个变量代表多大的一块存储空间,这样编译器才知道如何读写这块存储空间。
定义一个变量,就是分配一块存储空间并给它命名;给一个变量赋值,就是把一个值保存到这块存储空间中。变量的定义和赋值也可以一步完成,这称为变量的初始化(Initialization),例如要达到上面代码的效果也可以这样写:

在初始化语句中,等号右边的值叫做Initializer,例如上面的‘a’、11和59。注意,初始化是一种特殊的变量定义语句,而不是一种赋值语句。如果在纸上“跑“一个程序,可以用一个框表示变量的存储空间,在框的外边标上变量名,在框里记上它的值,如下图所示。

你可以用不同形状的框表示不同类型的变量,这样可以提醒你给变量赋的值必须符合它的类型。如果所赋的值和变量的类型不符会导致编译器报警或报错(这是一种语义错误),例如:

注意第三个语句,把“59“赋给minute看起来像是对的,但是类型不对,字符串不能赋给整形变量。既然可以为变量的存储空间赋值,就应该可以把值取出来用,现在我们取出这些变量的值用printf打印:

也就是说,变量名除了用在等号左边表示赋值之外,用在别的地方都表示把它的存储空间中的值取出来替换在那里。不同类型的变量所占的存储空间大小是不同的,存储表示方式也不同,最小存储单位是字节(Byte)。
5. 表达式
常量和变量都可以参与加减乘除运算,例如1+1、hour-1、hour*60+minute、minute/60等。这里的+-*/称为运算符(Operator),而参与运算的常量和变量称为操作数(Operand),上面四个由运算符和操作数组成的算是称为表达式(Expression)。
我们定义:在任意表达式后面加个;号也是一种语句,称为表达式语句。例如:

这是个合法的语句,但这个语句在程序中起不到任何作用,把hour的值和minute的值取出来加乘,得到的计算结果却没有保存,白算了一通。再比如:

这个语句就很有意义,把计算结果保存在另一个变量total_minute里。事实上等号也是一种运算符,赋值语句就是一种表达式语句,等号的优先级比+和*都低,所以先算出等号右边的结果然后才做赋值操作,整个表达式total_minute = hour*60 + minute加个;号构成一个语句。任何表达式都有值和类型两个基本属性。hour*60 + minute的值是由三个int型的操作数计算出来的,所以这个表达式的类型也是int型,它的值是多少呢?C语言规定等号运算符的计算结果就是等号左边被赋予的那个值,所以这个表达式的值和hour*60 + minute的值相同,也和total_minute的值相同。等号运算符还有一个和+-*/不同的特性,如果一个表达式中出现多个等号,不是从左到右计算而是从右到左计算,例如:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-54745-2.html
看看淘宝什么吊样了