C 语言(二)
主要包括变量与常量、数据类型、存储方式、数制转换以及字符处理等内容
一、变量与常量
在 C 语言中,变量是用来存储数据的命名空间,它会在内存中分配地址。例如:int i; i = 12345; 其中 i 是变量,12345 是常量。
常量表示在程序运行过程中不会改变的值,而变量 i 会在 RAM(随机访问内存)中被分配一段空间,用于存放数据。
变量的命名规范如下:由字母、数字和下划线组成;首字符不能为数字;
此外,还了解了整数的不同表示形式:
十进制:直接写出数值,如 123;
八进制:以 0 开头,如 0123;
十六进制:以 0x 开头,如 0x1A3;
二、整型变量与存储
C 语言中常用的整型有:int、short、long、long long 等。可以使用 sizeof 操作符查看某变量占用的字节数,例如:
int i;
printf("%d\n", sizeof(i));
在学习中还涉及了小端存储方式,即低地址存储低位,高地址存储高位。
signed int 表示有符号整型,通常占 4 个字节。
unsigned int 表示无符号整型,即只表示正数。
负数在计算机中采用补码存储:
正数的补码 = 原码
负数的补码 = 原码取反加一
存储在 RAM 中的目的是为了将人类可读的十进制数据转换为计算机内部使用的二进制形式进行处理。
整数的打印格式:
%d:打印有符号整型
%u:打印无符号整型
不同整型的范围要注意防止“溢出”现象。
三、浮点型数据与存储
浮点型变量打印格式:%f
科学计数:12.3e2 表示 12.3 × 10²
float:单精度,占 4 字节
double:双精度,占 8 字节
IEEE 754 标准将 float 表示为:1 位符号位 + 8 位阶码 + 23 位尾数。
示例:float f = -6.25;
其存储过程如下:
1. 符号位为 1(负数)
2. 6.25 转换为二进制为 110.01 = 1.1001 × 2²
3. 阶码:127 + 2 = 129(二进制为 10000001)
4. 尾数:1001 后补 0 补齐到 23 位
5. 拼接后转换为十六进制为:C0 C8 00 00(小端存储方式)
四、数据类型匹配与类型转换
变量赋值与使用时需注意数据类型匹配,防止精度丢失或误读。
对浮点型数据进行比较时,尽量避免直接使用等号判断,可设定误差范围。
字符型和整型是兼容的,字符变量可存储整数值,对应 ASCII 表中的字符。
示例:
#include<stdio.h>
int main(void) {
char c;
c = 107;
printf("%c\n", c); // 输出 k(ASCII 表中 107 对应的字符)
}
如果将 c 改为:c = 'H'; 那么输出结果就是 H。
通过学习 ASCII 表,可以更加直观理解字符与整型之间的对应关系。