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号”,就不会混淆。同理,变量名也是同样的作用,通过变量名就可以精准地找到变量对应的内存空间。
变量值:变量值是变量名标记的内存空间中的数据,如同杯子中装的可乐、咖啡等。