零基础趣学C语言
上QQ阅读APP看书,第一时间看更新

2.1 常量与变量

在C语言中数据的表现形式分为两种:常量和变量。然而无论常量还是变量都具有数据类型,因此按照数据类型还可以对常量和变量再次进行划分。

常量:整型常量、浮点型常量、字符型常量。

变量:整型变量、浮点型变量、字符型变量。

2.1.1 常量

常量(也叫字面量/字面常量)指的是在程序运行过程中,值不能被改变的量。在程序中,常量只能被引用,不能被修改。

在C语言程序中常用的常量类型有以下几种。

第一种,整型常量。例如:100、314、0、-200等都是整型常量。

【示例2-1】输出整型常量。

1 #include <stdio.h>

2 int main()

3 {

4  printf("%d\n",200);

5  printf("%d\n",-100);

6  getchar();

7  return 0;

8 }

运行结果如图2-1所示。

图2-1 运行结果

【程序分析】

1.%d表示按照十进制整数格式输出数据。

2.在执行printf函数时,整数常量将取代双引号中的%d,如图2-2所示。

图2-2 替换过程

3.“\n”是换行符,即输出200后,控制台中的光标位置移到下一行的开头,下一个输出的内容-100会出现在该光标位置上。

第二种,浮点型常量。浮点型常量其实就是数学中的小数。由数字与小数点组成,如3.14、12.2、0.618、-1.7等。

【示例2-2】输出浮点型常量。

1 #include <stdio.h>

2 int main()

3 {

4  printf("%f\n",3.14);

5  printf("%f\n",-12.2);

6  getchar();

7  return 0;

8 }

运行结果如图2-3所示。

图2-3 运行结果

【程序分析】

1.%f表示按照十进制小数格式输出数据。

2.同理,执行printf函数时,浮点型常量将替换双引号中的%f。

3.默认情况下,在VS2012中输出浮点型常量保留小数点后6位数字,所以3.14会输出3.140000,-12.2输出-12.200000。

第三种,字符型常量。在程序中,使用英文单引号括起来的字符被称为字符型常量。例如:'a'、'1'、'='、'?'、'#'等都是合法的字符常量。

注意: 字符常量只能是单个字符,不能写成'ab'、'12'、'=?'。

【示例2-3】输出字符型常量。

1 #include <stdio.h>

2 int main()

3 {

4  printf("%c\n",'A');

5  printf("%c\n",'#');

6  getchar();

7  return 0;

8 }

运行结果如图2-4所示。

图2-4 运行结果

【程序分析】

1.%c表示按照字符格式输出数据。

2.同理,执行printf函数时,字符型常量将替换双引号中的%c。

第四种,字符串常量。在程序中,使用英文双引号将若干个字符括起来的都是字符串常量(注意:不包括双引号本身)。例如:"124"、"hello"、"www.rupeng.com"等。

注意: 字符串常量只能使用双引号括起来,不能写成'124'、'hello'、'www.rupeng.com'。

【示例2-4】输出字符串。

1 #include <stdio.h>

2 int main()

3 {

4  printf("123\n");

5  printf("www.rupeng.com");

6  getchar();

7  return 0;

8 }

运行结果如图2-5所示。

图2-5 运行结果

2.1.2 变量

变量,顾名思义就是可以改变的量。变量本质上是一块有名字的内存空间,用来存放数据。类似于生活中喝水的杯子,杯子的空间大小是固定的,但是杯中内容是可以变化的,如图2-6所示,可以装可乐、也可以装雪碧、还可以装咖啡。

图2-6 变量示意图

总而言之,杯子是可以重复利用的,变量也是如此。内存空间大小是固定的,但是在程序运行期间变量中的内容是可以变化的,因此被称为变量。

在C语言中,一个合法的变量由3部分组成:变量类型、变量名、变量值。

变量类型:变量的类型用来规定变量对应内存空间的大小,如同杯子分小杯、中杯、大杯一样。

变量名:变量名用来标记变量对应的内存空间。如,有10个一模一样的杯子,从外表看无法区分。但是,如果给每个杯子都做一个标记,如依次贴上标签:“1号”“2号”……“10号”,就不会混淆。同理,变量名也是同样的作用,通过变量名就可以精准地找到变量对应的内存空间。

变量值:变量值是变量名标记的内存空间中的数据,如同杯子中装的可乐、咖啡等。