5. 变量

变量是 C 语言程序中用于存储数据的基本单元,它是内存中的一段连续的内存,其内存中的值可以在程序运行期间被修改。

变量通常有自己的名字,变量名是内存位置的标识符,通过这个名字可以访问这段内存。

C 语言中每个变量有特定的 数据类型,决定了它能存储的数据种类(如整数、小数等)和占用内存的大小。

变量的声明和初始化

变量必须先声明再使用。声明是告诉编译器,在程序运行到此处是要申请多大的内存空间用来保存何种类型的数据。

变量声明的语法:

数据类型 变量名1 [= 变量的初始值1],变量名2 [= 变量的初始值2];

[] 表示其中的内容可以省略

声明:

本教程写语法的规则是:中文的部分需要使用对应的内容替换,英文部分和符号部分如果不加特殊说明,则是语法中必须书写的关键字和符号。

语法说明:

示例:

#include <stdio.h>

int main(int argc, char *argv[]) {
    int age;      // 声明一个整型变量,初始值不确定。
    float price = 0.0;  // 声明一个浮点型变量,初始值为0.0
    int score1, score2 = 60; // 声明两个整型变量
    char gender = 'F';  // 声明一个字符型变量,初始值为'F'(值为70)。
                        // 字符 'F' 后续讲解。
    printf("age:%d, price:%f, score1:%d, score2:%d, gender:%d\n",
        age, price, score1, score2, gender
    );
    return 0;
}

运行结果

age:2113775720, price:0.000000, score1:32765, score2:6, gender:70

其中变量 agescore1 没有给出初始值,因此它的值充满不确定性。

上述程序中 printf 函数是为了打印各个变量的值,具体内容我们后续章节再解释。

上述程序中 agepricescore1score2gender 都是变量名。

C 语言的变量名不能随意书写,它有自己的命名规则,称之为:标识符(Identifier)。

标识符

标识符 用于在程序中自定义的名称,如:变量名(variable)、函数名(function)、数组名(array)等。

C 语言的标识符的命名规则

合法的标识符示例

laowei     wei_ming_ze    ei123      a1b2c3
_abc       a1             x          y

不合法的标识符示例:

1a         $a

常用的标识符的命名方法:

  1. 使用英文单词的名词等作为变量名(建议使用),也可是使用汉语拼音作为变量名。
  2. 当有多个英文组合时使用小写加下划线。如:student_name_age
  3. 当有多个英文组合时使用大驼峰命名法,每个单词首字母大写。如:StudentNameAge
  4. 当有多个英文组合时使用小驼峰命名法,第一个单词小写,后续单词首字母大写。如:studentNameAge

C 语言的关键字(保留字)不能用作标识符。

C11 的关键字和保留字

auto      if        unsigned
break     inline    void
case      int       volatile
char      long      while
const     register  _Alignas
continue  restrict  _Alignof
default   return    _Atomic
do        short     _Bool
double    signed    _Complex
else      sizeof    _Generic
enum      static    _Imaginary
extern    struct    _Noreturn
float     switch    _Static_assert
for       typedef   _Thread_local
goto      union

练习:

挑选出下列不合法的变量名

123L     snoopy_and_me       WHILE       volatile

__file__    printf      _1a2b3c4d        long_long

goto_room     longlongago