一、关键字
二、标识符
1、系统预定义标识符:如printf
2、用户自定义标识符:用来标识变量名、符号常量名、数组名、函数名等。
3、命名规则:由大小写字母、数字和下划线构成,且首字符必须是字母或下划线。不能与关键字及系统预定义标识符相同。
三、变量
1、变量的地址:32位中,用唯一的一个十六进制无符号整数来标识地址。
2、数据类型
3、不同类型数据占用的内存大小
int:4
short int:2
long int:4
float:4
double:8
char:1
4、表数范围:
32位中,int最大为2的31次方-1,理由如下:
1的原码为0000 0000 0000 0000 0000 0000 0000 0001
2147483647的原码为0111 1111 1111 1111 1111 1111 1111 1111
所以最大的正整数是2147483647
把-0拿来当做一个最小的数-2147483648。
-2147483648的补码表示为1000 0000 0000 0000 0000 0000 0000 0000
所以最小的正整数是-2147483648
可以用以下程序测试。
#include <limits.h>
#include<stdio.h>
int max = INT_MAX;//最大数
int min = INT_MIN;//最小数
int main(){
printf("max = %d\nmin = %d\n", max, min);
return 0;
}
无符号的绝对值大小是有符号的绝对值大小的2倍。
5、数据的存储方式
都是以二进制编码方式储存
浮点数:将实数拆成阶码和尾数分别储存。阶码决定了实数的表数范围,尾数决定了实数的表数精度。
字符型数据:ASCII码值转成二进制储存。
6、不同数据可参与的运算不同
整型:加、减、乘、除、求余
实型:加、减、乘、除
字符型:对ASCII的加、减
四、常量
常量指在程序中b不能改变其值的量。
整型:67,022(以0开头的为八进制常量),0x12(0x开头的是十六进制常量),123L(L表示长整型常量),123u(u表数无符号整型)
实型: 3.14,1.5e-2(1.5x10的负2次方,科学记数法形式,e后面的数不能是小数),2.73F(单精度实型),2.73L(长双精度实型)
字符型: 用单引号括起来的:‘3’,‘z’,‘&’。
字符串常量:用双引号括起来的,“asd”,“3”,“5a”
宏常量
用一个标识符来表示的常量
宏定义:
#define 标识符 字符串
const常量
只能在定义时赋初值,不能在程序中改变其值。
比如:const double a=3;
const常量与宏常量相比的优点:
1、const常量有数据类型,编译器能对其进行类型检查。
2、某些集成化调试工具可以对const常量进行调试