文章目录:
一.数据类型
二.常量
三.变量
四. 整型数据
五.浮点型数据
六.字符型数据
七.字符串常量
一.数据类型
数据类型分为四大类:
- 基本类型
- 整型
- 浮点
- 字符型
- 构造类型
- 数组
- 结构体
- 指针类型
- 空类型
二.常量
常量是指在程序运行过程中,其值不发生变化的量。常量又可分为整型、实型(也称浮点型)、字符型和字符串型。
整型常量、实型常量、字符型常量是在编译时可以直接编入代码段的常量;例如,在字符串"你好"中,双引号中间的汉字就是字符串型常量,无论双引号中间的内容是ASCII码字符,还是汉字或其他国家的文字等,都是字符串型常量(考研不会考汉字的字符串常量,无需掌握)。
三.变量
变量代表内存中具有特定属性的一个存储单元,世用来存放数据,即变量的值。这些值在程序的执行过程中是可以改变的。
变量名实际上以一个名字代表一个对应的存储单元地址。编译、链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间)。从变量中取值实际上是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据。
变量的命名规定如下:C语言规定标识符只能由字母、数字和下划线
三种字符组成,并且第一个字符必须为字母或下画线
。例如,
sum,_total,Student_name
编译系统认为大写字母和小写字母是不同的字符,因此C语言要求对所有用到的变量做强制定义,即“先定义,后使用”。同时在选择变量名和其他标识符时,应尽量做到“见名知意”,即选择具有含义的英文单词(或其缩写)作为标识符。注意,变量名不能与关键字同名!
四. 整型数据
4.1 符号常量
define + 关键字+值
来看一个实际的例子:
#include <stdio.h>
#define PI 3+2
int main() {int i=PI*2;printf("i=%d\n",i);return 0;
}
注意输出是7,而不是10
4.2 整型变量
int i ;
i=10;
printf("%d",sizeof(i));
五.浮点型数据
5.1 浮点型常量
表示浮点型常量的形式有两种,如下表所示,其中e代表10的幂次,幂次可正可负。
注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。
正确示例:le3、1.8e-3、-123e-6、-.le-3。
错误示例:e3、2.le3.5、.e3、e。
5.2 浮点型变量
通过float f来定义浮点变量,f占用4个字节的空间
六.字符型数据
6.1 字符型常量
用单引号括起来的一个字符是字符型常量,且只能包含一个字符!例如,‘a’、‘A’、‘1’、’ ‘是正确的字符型常量,而’abc’、“a”、""是错误的字符型常量。下表中给出了各种转义字符及其作用。以“\”开头的特殊字符称为转义字符,转义字符用来表示回车、退格等功能键。
6.2 字符数据在内存中的存储形式及其使用方法
字符型变量使用关键字char进行定义,一个字符型变量占用1字节大小的空间。一个字符常量存放到一个字符型变量中时,实际上并不是把该字符的字型放到内存中,而是把该字符的ASCII 码值放到存储单元中。打印字符型变量时,如果以字符形式打印,那么计算机会到ASCI码表中查找字符型变量的ASCII码值,查到对应的字符后会显示对应的字符,如下图所示。
这样,字符型数据和整型数据之间就可以通用。字符型数据既可以以字符形式输出,又可以以整数形式输出,还可以通过运算获取想要的各种字符,请看下面例子。
#include<stdio.h>
int main()
{char c='A';printf("%c\n",c+32);printf("%d\n",c);
}
对于字符型变量,无论是赋ASCII码值还是赋字符,使用%c打印输出时得到的都是字符,使用%d打印输出时得到的都是ASCII码值.将小写字母转换为大写字母时,由课件最后的ASCI码表发现小写字母与大写字母的差值为32,因此将c减去32就可以得到大写字母A,
七.字符串常量
字符串型常量是由一对双引号括起来的字符序列。例如,“How do you do.”、“CHINA”、“a"和”$123.45"是合法的字符串型常量,我们可用语句printf (“How do you do.”)输出一个字符串。但要注意的是,‘a’是字符型常量,而"a"是字符串型常量,二者是不同的。
例如,如果先用语句char c定义字符型变量c,后令 c="a"或c="CHINA ,那么这样的赋值都是非法的,原因是不可以将字符串型常量赋值给字符型变量。C语言中没有定义字符串型变量的关键字,介绍字符数组时我们将详细讲解如何存放字符串。
C语言规定,在每个字符串型常量的结尾加一个字符串结束标志,以便系统据此判断字符串是否结束。C语言规定以字符’\0’作为字符串结束标志。
例如,字符串型常量"CHINA"在内存中的存储结果如下图所示,它占用的内存单元不是5个字符,而是6个字符,即大小为6字节,最后一个字符为’\O’。然而,在输出时不输出’\0’,因为’\0’无法显示。