整型(int)
- int 的本意是 integer,即整数的意思
- int a 代表在内存中开辟一块小区域,称为 a,用来存放整数,a 一般被称为变量。
- 变量 a 所占内存大小,在不同的系统中是不一样的,64位系统典型的大小是4个字节。
- 变量 a 有固定的大小,因此也有取值范围,典型的范围是:-2147483648到2147483647
整形的修饰符:
- short:用来缩短整型变量的尺寸,减少取值范围并节省内存,称为短整型
- long:用来增长整型变量的尺寸,增大取值范围并占用更多内存,称为长整型
- long long:用来增长整型变量的尺寸,增大取值范围并占用更多内存,称为长长整型
- unsigned:用来去除整型变量的符号位,使得整型变量只能表达非负整数
- 符号位:
- 有符号的整型数据,首位为符号位,0表示正数,1表示负数。
- 无符号的整形数据,没有符号位。
- 编码形式:
- 原码:正数直接使用二进制来表达,比如a=100,在内存中是 00…001100100
- 补码:负数用绝对值取反加一来表达,比如a=-3,在内存中是11…1111111101
- 注意负数的补码在取反加一的时候,符号位是不动的
-
进制:源码中可以使用八进制、十进制或十六进制,但实际数据在内存中一律是二进制
- 十进制(默认),比如1099
- 八进制,比如013
- 十六进制,比如0x6FF0A
-
格式控制符
- int 整型:%d
- short 整型:%hd, h代表half,即一半的存储字节
- long 整型:%ld
- long long 整型:%lld
- 显示不同进制的前缀: %#o、 %#x
浮点型(float double long double)
- 分类:
- 单精度浮点型(float),典型尺寸是4字节
- 双精度浮点型(double),典型尺寸是8字节
- 长双精度浮点型(long double),典型尺寸是16字节
- 占用内存越多,能表达的精度越高
字符 (char)
计算机中存储的都是1和0,因此各种字符都必须被映射为某个数字才能存储到计算机中,这种映射关系形成的表称为 ASCII 码表。
字符串
// 字符串的定义方式有两种:指针和数组
char *s1 = "abcd"; // 使用字符指针来表示字符串
char s2[]= "abcd"; // 使用字符数组来表示字符串
// 注意,使用数组来定义字符串时,方括号[]里面的数字可以省略
// 不省略也可以,但必须必字符串实际占用的内存字节数要大,比如:
char s3[] = "apple";
布尔型数据 (bool)
概念:布尔型数据只有真、假两种取值,非零为真,零为假。
常量与变量
概念:不可改变的内存称为常量,可以改变的内存称为变量
标准输入
概念:键盘是系统的标准输入设备,从键盘中输入数据被称为标准输入
scanf(); // 格式化输入函数
fgets(); // 字符串输入函数
int a;
float f;
scanf("%d", &a); // 从键盘输入一个整型,放入指定的内存地址 &a 中
scanf("%f", &f); // 从键盘输入一个浮点数,放入指定的内存地址 &f 中
scanf("%d%f", &a, &f); // 从键盘依次输入一个整型和一个浮点型数据,用空白符隔开
char c;
char s[10];
scanf("%c", &c); // 从键盘输入一个字符,放入指定的内存地址 &f 中
scanf("%s", s ); // 从键盘输入一个单词,放入指定的数组 s 中(注意不是&s)
fgets(s, 10, stdin); // 从键盘输入一行字符串,放入数组 s 中