C语言基础:
1.进制转换
二进制、八进制、十六进制 -> 十进制
对应位 * 对应位的权值再求和
十进制 -> 二进制、八进制、十六进制
十进制数除以进制数得到的余数逆序排列
二进制 八进制 十六进制:
八进制1位对应二进制3位
十六进制1位对应二进制4位
2.gcc编译的流程步骤:
gcc filename.c
1.预处理
处理和#号相关代码
(1)头文件展开
#include
(2)宏定义替换
#define M 100
(3)条件编译 gcc -E filename.c -o filename.i
#if #elif #else #endif #ifndef #ifdef
2.编译
将C语言程序编译成汇编代码 gcc -S filename.c -o filename.s
3.汇编
将汇编代码编译成二进制代码 gcc -c filename.c -o filename.o
4.链接
将多个二进制代码链接成为一个可执行程序 gcc filename.c -o filename
3.基本数据类型、运算符、表达式
(1)基本数据类型:
整形数据 short int long
short (signed short)
unsigned short
int (signed int)
unsigned int
long (signed long)
unsigned long
名称 占内存空间 值域范围 存储方式
short: 短整形 2个字节空间 -32768 - 32767 补码
unsigned short: 无符号短整型 2个字节空间 0 - 65535 对应的二进制数
int: 整形 4个字节空间 -21亿 - 21亿 补码
unsigned int: 无符号整形 4个字节空间 0 - 42亿 对应的二进制数
long: 长整型 8个字节空间 -2^63 - 2^63 -1 补码
unsigned long: 无符号长整型 8个字节空间 0 - 2^64 对应的二进制数 (2)浮点型数据 float double, 所有的浮点数类型均为有符号类型,没有无符号类型的概念
名称 占内存空间大小 值域范围
float 单精度浮点数类型(最多表示6-8位有效数字) 4个字节 -3.4*10^38 - 1.18*10^-38
1.18*16^-38 - 3.4*10^38
存储方式:1位符号位 + 8位指数位 + 23位尾数位
double 双精度浮点数类型(最多表示12-14位有效数字) 8个字节 -1.80*10^308 - 2.23*10^-308 2.23*10^-308 - 1.80*10^308
存储方式:1位符号位 + 11位指数位 + 52位尾数位
浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数 (float:127 double:1023)以二进制形式存入指数位中
(3)字符型:char
ASCII码表:
字符和数字的对应关系
名称 内存空间大小 值域范围 存储方式
unsigned char 1个字节 0 - 255 存储字符在ASCII码表中对应数字的二进制形式
signed char 1个字节 -128 - 127
(4)逻辑类型: bool
名称 内存空间大小 值域范围 存储方式
泊尔类型 bool 1个字节 true 1
false 0
在C语言中所有的非0值均为逻辑真值, 0值为逻辑假值
4.常量和变量:
(1)整形常量:
默认为int类型
100 int类型
100l long类型
100u unsigned int类型
100ul unsigned long类型
0123 八进制常量
0x1a 十六进制常量
(2)整形变量:(变量拥有存储空间,也有值域范围)
1.变量要先定义再使用
1.变量定义的形式:
(1)变量名可以由字母、数字、下划线构成不能以数字开头
(2)变量名不能与C语言关键字重名
(3)变量名最好不要与库函数重名
(4)变量名最好是见名知意
(3) 浮点型常量:
默认为double类型
3.1415 double类型
3.1415f float类型
(4) 浮点型变量:
double d;
float f;
(5)字符型常量:
'a' 'A' 'z' 'Z' '?' '#' '~' ' '
'\'' : '号' \n' : 换行符 '\t' : 横向制表符 '\v' : 纵向制表符 '\r' : 回车符 '\b' : 退格符 '\\' : \符
'0' : 48
0 : 0
'\0' : ASCII码值为0 用来标识字符串的结尾
'\123' : 八进制123对应的字符
'\x32' : 十六进制32对应的字符
(6)字符型变量:
char ch;