一、变量命名规则
1.不能以数字开头,只能是以字母或者下划线
int 2var;//error
int _2var;//ok
int var;//ok
2.C语言关键字不可以作为变量名称
int return = 1;
int int = 100;
3.大小写敏感
int a;
int A;//a和A是两个变量互不相干
4.命名尽量做到见名知意
int a = 18;//你能知道a变量存储的是年龄信息
int age = 18;//其中存储了年龄信息
int height = 182;
5.命名方式
驼峰命名(windows):
int stuAge = 19;
下划线命名(Linux):
int stu_age = 19;
二、数据类型功能
计算机将来分配内存大小
int val = 520;
int - 计算机会分配4字节内存
数据类型 | 含义 | 数据范围 |
---|---|---|
char | 1字节整数 | -128~127 |
unsigned char | (无符号)1字节整数 | 0~255 |
short | 2字节整数 | -32768~32767 |
unsigned short | (无符号)2字节整数 | 0~65535 |
long | 4字节整数 | -2^31~2^31-1 |
unsigned long | (无符号)4字节整数 | 0~2^32-1 |
int | 4字节整数 | -2^31~2^31-1 |
unsigned int | (无符号)4字节整数 | 0~2^32-1 |
int和long类型在不同的机器上对应的字节数不同
8位系统 | 32位系统 | 64位系统 | |
---|---|---|---|
int | 2字节 | 4字节 | 4字节 |
long | 4字节 | 4字节 | 8字节 |
笔试题中,一般认为在32位系统中
int类型 - 4字节
long类型 - 4字节
三、数据类型——字符类型
数据类型:char / unsigned char
字符类型的名称是char
字符类型包含256个不同的整数,每个整数对应一个字符(例如‘y’,‘%’等)
整数所表示的范围为:-128-127
这些整数和字符之间是可以互相替换的
每一个字符 - 对应着一个整数
存储'a' - 存储到内存 - 1字节 - 将字符对应的整数存起来
ASCII码表里列出所有整数和字符之间的对应关系
- 'a' 97
- 'A' 65
- '0' 48
当存储一个字符的时候,实际上是将字符对应的数字存储到了内存中
例如存储字符‘a’,实际上是将数字97存储到了内存中
ASCII码 | 字符 |
---|---|
32 | 空格 |
33-47 | !"#$%&'+,-./ |
48-57 | 0123456789 |
58-64 | :;<=>?@ |
65-90 | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
91-96 | [\]^_` |
97-122 | abcdefghihklmnopqrstuvwxyz |
123-126 | {|}~ |
定义字符类型变量
char c = 'a'
定义字符类型变量c,分配一个字节,将字符'a'(97)存储到分配好的字节中
输出或者输入占位符:%c / $hhd
%c:让存储区中数据以字符方式输出
%hhd:让存储区中的数据以数字方式输出
补充:几个常见的转义字符
字面值 | 含义 | 字面值 | 含义 |
---|---|---|---|
'\a' | 响铃 | '\"' | " |
'\b' | 退格 | '\\' | \ |
'\t' | 水平制表 | '%%' | % |
'\n' | 换行 | ||
'\v' | 垂直制表 | ||
'\f' | 换页 | ||
'\r' | 回车 | ||
'\'' | ' |
四、数据类型-整数类型
(1)短整数类型名称是short - 2字节
这个类型里包含65535个不同的整数,其中一般是非负数另外一半是负数,这些数字以0为中心向两边扩展
(2)长整数类型名称是long - 4字节
这个类型包含2的32次方个不同的整数,其中一半是非负数另外一半是负数。这些数字以0为中心向两边扩展。
(3)整数类型名称是int - 4字节
这个类型里包含2的32次方个不同的整数,其中一半是非负数另外一半是负数。这些数字以0为中心向两边扩展。
以上类型都叫做有符号类型
每个有符号类型都有一个对应的无符号类型
无符号类型的名称是在对应的有符号类型名称前加unsigned关键字(例如unsigned char,unsigned int 等)
无符号类型里包含的数字个数好对应的有符号类型是一样的,但是不包含负数
例如:
int m = 100;
定义一个有符号int类型的变量,本质分配了4字节的内存空间
该4字节内存空间中存储的是数字100
unsigned int m = 100;
定义一个无符号int类型的变量,本质分配了4字节的内存空间
该4字节内存空间中存储的是数字100
unsigned 关键字修饰的变量为非负数
short m = 100;
分配2字节存储区,存储整数100
unsigned short m = 100;
分配2字节存储区,存储整数100
unsigned关键字修饰的变量为非负数
五、数据类型——浮点数类型
float f = 1.1;
定义浮点类型变量f,本质上就是分配一个4字节存储区
将浮点数1.1的相关信息存储到4字节存储区去
double d = 1.1;
定义双精度浮点类型变量d,本质上就是分配一个8字节存储区
将浮点数1.1的相关信息存储到8字节存储区中去
程序里带小数点的数字默认是双精度浮点类型的6.7
带小数的数字后加字符f表示数字是单精度浮点类型的6.7f
补充:
类型 | 格式化标记符(占位符) | |
---|---|---|
char | %c/%hhd | 1字节 |
unsigned char | %c/%hhu | 1字节 |
int | %d | 4字节 |
unsigned int | %u | 4字节 |
short | %hd | 2字节(h=half) |
unsigned short | %hu | 2字节 |
long | %ld | 4/8字节(l=long) |
unsigned long | %lu | 4/8字节 |
float | %f/%g | 4字节 |
double | %lf/%lg | 8字节 |
六、数据类型——复合数据类型
C语言里可以创建信的数据类型
这些新的数据类型叫做复合数据类型
复合数据类型需要先创建出来然后才能使用
七、sizeof关键字
利用sizeof关键字获取变量或者数据类型对应的内存空间大小
语法格式:
sizeof(变量名 / 数据类型名 / 表达式);
计算内存的大小,以字节为单位
举例:
int a = 1;
printf("%lu,%lu\n",sizeof(a),sizeof(int));
//注意:%lu - sizeof占位符
八、scanf函数
scanf标准函数可以在程序运行的时候从键盘得到用户输入的数字 - scanf format
为了使用这个标准函数需要包含srdio.h头文件
从键盘获取数字后需要存储到内存的存储区中
在scanf函数调用语句里必须使用 [存储区的地址] 表示存储区
&变量名 数组名 指针
在scanf函数调用语句里需要使用 [占位符]表示存储区的类型
int a = 0;
scanf("%d",&a);
可以在一条scanf函数调用语句里获得多个数字,此时需要多个占位符和多个存储区
占位符的个数和存储区的个数要相等
int a = 0, b = 0;
scanf("%d%d",&a,&b);
如果在scanf函数调用语句的双引号里包含不是占位符的内容则用户在输入的时候必须把这些内容按照原样输入,否则程序就无法获得数字
如果用户输入的内容和程序所要求的内容格式不同程序就无法获得数字
例如:
scanf("%d,%d",&a,&b);
输入:
100,200 + enter