目录
变量的介绍
变量相当于一个数据存储空间的表示,可以把变量当作门牌号,通过门牌号可以找到房间,同样的,我们可以通过变量名来访问变量值
变量使用基本步骤
1,变量声明;
2,赋值
3,使用
#include<stdio.h>
int main()
{
int n;//声明变量
n = 10;//赋值
printf("%d",n);//使用
return 0;
}
变量使用注意事项
1,变量表明内存中的一个内存区域(不同数据类型占用内存大小不一样)。
例如: int类型占用4字节大小,double类型占用8字节大小
2,该区域有自己的名称和类型
int a;//声明了一块int类型 名称为a的内存区域
3,变量必须先声明,后使用。这点非常重要,就好比要先拿到钥匙才能打开门吧。
4,该区域的数据可以在同一类型下不断变化。
例如:int a = 10; 可以修改为a = 20;
5,变量在同一作用域下不能同名,毕竟同一个房间总不能同时被不同的顾客使用吧。
6,变量三要素(变量名,值,数据类型);
变量数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(用字节表示)
注意:c语言中没有字符串类型,一般用字符数组char[]来表示
2,在不同系统上,部分数据类型占用字节不同
数据类型分类
整型
类型 | 存储大小(单位为字节) | 值范围 |
---|---|---|
char | 1 | -128 即-(2^7) 到 127 (2^7-1) |
unsigned char | 1 | 0 到 255 (2^8 - 1) |
signed char | 1 | -128 即-(2^7) 到 127 (2^7-1) |
intsigned int (int) | 2/4 | -32,768 (- 2^15 ) 到 32,767 (2^15-1)或 -2,147,483,648 (- 2^31) 到 2,147,483,647 (2^31 -1) |
unsigned int | 2/4 | 0 到 65,535 (2^16-1) 或 0 到 4,294,967,295 (2^32 -1) |
short (signed short) | 2 | -32,768 (- 2^15)到 32,767 (2^15 -1) |
unsigned short | 2 | 0 到 65,535 (2^16 - 1) |
long (signed long) | 4 | -2,147,483,648 (- 2^31) 到 2,147,483,647 (2^31 - 1) |
unsigned long | 4 | 0 到 4,294,967,295 (2^32 - 1) |
注意:
- 各种类型的存储大小与操作系统、 系统位数和编译器有关 ,目前通用的以64位系统为主
- C语言的整型类型, 分为有符号 signed 和无符号 unsigned 两种, 默认是 signed
- C程序中整型常声明为int型, 除非不足以表示大数, 才使用long long
浮点类型
浮点型可以表示小数,123.4
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float 单精度 | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位小数 |
double 双精度 | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位小数 |
注意:
1,浮点数在机器存放形式为:浮点数 = 符号位+指数位+尾数位,浮点数是近似值
2,尾数部分可能丢失,造成精度损失
3,浮点型常量默认为double类型,声明float类型时要后加f或F
4,浮点型常量有俩种表达形式:
1,十进制 512 512.0f.512(必须有小数点)
2,科学计数法5.12e2 等同于5.12*10^2. 计算机用e或E来表示10的幂。
科学计数法输出时采用%e或% E。
3,一般情况下用double类型,因为比float更精确
4,
printf("d = %f",d);一般默认保留小数点后6位。
如果想保存后俩位,可以在%后写.2即
printf("d = %.2f",d);
字符类型
字符类型可以表示单个字符和多个字符(字符串),字符串一般用字符数组表述,
注意:
1,字符常量用单引号括起来,char c = 'a';
2,c语言还允许转义字符‘\’来将后的字符转换特殊字符常量,\n表示换行
3,char的本质是整数,输出时是ASCII对应的字符
字符类型本质
1,字符型,存储到计算机中需要将字符对应的ASCII码值找出来
存储: a ->ASCII码(97)->二进制(1100001)->存储
读取:二进制(1100001)->ASCII(97)->字符'a'->读取
2,关于字符与码值对应关系可以查看ASCII表
布尔类型
布尔类型仍然是整数类型,但布尔变量只能赋值为0或1,非0都会被存储为1。
C99还提供一个头文件<stdbool.h> bool 代表_Bool,true代表1,false代表0
常量介绍
常量是固定的值,在运行过程中无法改变
字面常量
字面常量是直接写出来的固定值,包含c中所有数据类型。
const修饰的常变量:有时我们希望声明的变量的值不被修改,这时const就发挥了作用
const int a = 10;
const修饰的常变量本质是变量,但是有常属性,不能被修改
#define定义的标识符常量
通常用于代表数组容量或数字的常量
#define PI 3.14
#define MAX 100
int main()
{
int str[MAX] = {0};
return 0;
}
如果修改,只需修改MAX即可。
枚举常量
enum fruit
{
apple,
banana,
candy
};
int main()
{
enum fruit f = apple;//利用枚举常量给变量赋值
printf("%d",apple);
printf("%d",banana);
printf("%d",candy);
return 0;
}
注意
- 不能对枚举常量赋值,只能将它们的值赋给其他的变量。
- 不能再定义与枚举常量名字相同的变量。
- 不能用
&
取得它们的地址。