1、什么数据类型
在生活中,裁缝做衣服需要用到不同的化纤、棉花、丝绸等布料,炒不同的菜需要油、盐等不同的配方,而程序员在编写程序时也需要用到不同的数据类型,数据类型的分类如下图:
2、常量
常量是指在程序运行过程中,其值不发生改变的量。常量又可分为整型、实型(也称为浮点型)、字符型和字符串型
整型常量、实型常量、字符型常量在编译时可以直接带入代码段的常量;例如在字符串“你好”中,双引号中间的汉字就是字符串型常量,无论双引号中间的内容是ASCII码字符,还是汉字或其他国家的文字等,都是字符串型常量
整型 : 100 125
实型 : 3.14 0.125
字符型:'a'
字符串型:"a"
3、变量
变量代表内存中具有特定属性的一个存储单元,它用来存放数据即变量的值。这些值在程序的执行过程中是可以改变的。
变量名实际上以一个名字代表一个对应的存储单元地址。编译链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间),从变量中取值实际上是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据
C语言规定标识符只能由字母、数字和下画线三种字符组成,并且第一个字符必须为字母或下画线
正确的:
a,_total,month
错误的:
M.D,$123,3D
4、整型数据
定义一个整型变量时要使用关键字int,占4个字节。我们来看下面的例子
#include "stdio.h"
#define PI 3+2
int main(){
int i = PI * 2;
printf("i=%d",i);
}
这里面的PI就是定义的常量,而输出结果会是7,而不是10,原因是常量会进行直接编入相当于 3 + 2 * 2
而下面定义的i就是变量,因为它是随着右边的式子变化的
5、浮点型数据
常量
表示浮点型常量的形式有两种,如下表,其中e代表10的幂次,幂次可正可负
小数形式 | 0.123 |
---|---|
指数形式 | 3e-3(即0.003) |
注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数
变量
通过float来定义浮点型变量。占用4个字节空间
6、字符型数据
用单引号括起来的一个字符是字符型常量,且只能包含一个字符!
例如,'a'、'A'、"1、'是正确的字符型常量
而'abc'、"a"、""是错误的字符型常量
下表中给出了各种转义字符及其作用。以“\”开头的特殊字符称为转义字符,转义字符用来表示回车、退格等功能键
转义字符 | 作用 |
---|---|
\n | 换行 |
\b | 退格 |
\\ | 反斜杠 |
字符型变量使用关键字 char 进行定义,一个字符型变量占用1字节大小的空间。一个字符常量存放到一个字符型变量中时,实际上并不是把该字符的字型放到内存中,而是把该字符的ASCII码值放到存储单元中,每个字符的ASCII码值详见附录A。打印字符型变量时,如果以字符形式打印,那么计算机会到 ASCII 码表中查找字符型变量的ASCII码值,查到对应的字符后会显示对应的字符存储(ASCI码)
7、字符串数据
字符串型常量是由一对双引号括起来的字符序列。例如,"How do you do."、"CHINA""a"和"$123.45"是合法的字符串型常量
我们可用语句
printf("How do you do.") //输出一个字符串
但要注意的是,'a'是字符型常量,而"a"是字符串型常量,二者是不同的,
例如,如果先用语句 char c定义字符型变量 c,后令 c="a"或 c="CHINA",
那么这样的赋值都是非法的,原因是不可以将字符串型常量赋值给字符型变量.
C语言中没有定义字符串型变量的关键字,介绍字符数组时我们将详细讲解如何存放字符串。