C语言基础:
一.进制转换
1.二进制、八进制、十六进制 -> 十进制
对应位 * 对应位的权值再求和
2.十进制 -> 二进制、八进制、十六进制
十进制数除以进制数得到的余数逆序排列
3。二进制 八进制 十六进制:
八进制1位对应二进制3位
十六进制1位对应二进制4位
二.1.数字在内存中的存储:
正数在计算机中存放对应的二进制数
负数在计算机中存放补码
1.原码
2.反码
3.补码
4.内存数据
三.gcc编译的流程步骤:
gcc filename.c
1.预处理
处理和#号相关代码
1.头文件展开
#include
2.宏定义替换
#define M 100
3.条件编译
#if #elif #else #endif #ifndef #ifdef
gcc -E filename.c -o filename.i
2.编译
将C语言程序编译成汇编代码
gcc -S filename.c -o filename.s
3.汇编
将汇编代码编译成二进制代码
gcc -c filename.c -o filename.o
4.链接
将多个二进制代码链接成为一个可执行程序
gcc filename.c -o filename
=================================================================================================================================
四.1.基本数据类型、运算符、表达式
1.数据类型分类
1.基本数据类型:
整形数据 short int long
short (signed short)
unsigned short
int (signed int)
unsigned int
long (signed long)
unsigned long
浮点型数据 float double
字符型 char
逻辑类型(泊尔类型) bool
缺省类型(void)
2.构造数据类型:
结构体
共用体
枚举类型
3.基本数据类型
1.整数类型:
名称 占内存空间 值域范围 存储方式
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 对应的二进制数
练习:
编写程序测试数据类型所占字节数:
short 2
int 4
long 8
float 4
double 8
char 1
void 1
2.浮点数类型:
float
double
3.1415926
5.12
所有的浮点数类型均为有符号类型,没有无符号类型的概念
名称 占内存空间大小 值域范围 存储方式
float 单精度浮点数类型(最多表示6-8位有效数字) 4个字节 -3.4*10^38 - 1.18*10^-38 1位符号位 + 8位指数位 + 23位尾数位
1.18*16^-38 - 3.4*10^38
double 双精度浮点数类型(最多表示12-14位有效数字) 8个字节 -1.80*10^308 - 2.23*10^-308 1位符号位 + 11位指数位 + 52位尾数位
2.23*10^-308 - 1.80*10^308
浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中
IEEE754
和整数存储方式完全不同
3.字符型:
char
a .. z
A .. Z
# ? ..
ASCII码表:
字符和数字的对应关系
a -> 97
名称 内存空间大小 值域范围 存储方式
unsigned char 1个字节 0 - 255 存储字符在ASCII码表中对应数字的二进制形式
signed char 1个字节 -128 - 127
4.逻辑类型:
bool
名称 内存空间大小 值域范围 存储方式
泊尔类型 bool 1个字节 true 1
false 0
在C语言中所有的非0值均为逻辑真值
0值为逻辑假值
5.缺省类型:
void
搭配函数和指针使用
void a;
五.常量和变量:
1.常量: 在程序运行过程中值不允许发生改变的量
2.变量: 在程序运行过程中值可以发生改变的量
3.表达式:由一个或者多个运算符连接的变量和常量组成的式子
1.整形常量:
默认为int类型
100 int类型
100l long类型
100u unsigned int类型
100ul unsigned long类型
100L
100U
100UL
0123 八进制常量
0x1a 十六进制常量
0X1A
2.整形变量:
1.变量要先定义再使用
1.变量定义的形式:
数据类型 变量名;
1.变量名可以由字母、数字、下划线构成不能以数字开头
2.变量名不能与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意
驼峰法:
int TempNum;
int MaxCnt;
int MinNum;
int AvgScore;
内核法:
int temp_num;
int max_cnt;
int min_cnt;
int avg_score;
2.变量拥有存储空间,也有值域范围
3. 浮点型常量:
默认为double类型
3.1415 double类型
3.1415f float类型
3.1415e8
3.1415e-8
3.1415E8
3.1414E-8
4. 浮点型变量:
double d;
float f;
5.字符型常量:
'a' 'A'
'z' 'Z'
'?' '#'
'~' ' '
'\'' : '号
'\n' : 换行符
'\t' : 横向制表符
'\v' : 纵向制表符
'\r' : 回车符
'\b' : 退格符
'\\' : \符
'0'
'1' : 字符1
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\0' : 字符\0
'1' -> ASCII码表 -> 49
1 : 1
'0' : 48
0 : 0
'\0' : ASCII码值为0 用来标识字符串的结尾
'\123' : 八进制123对应的字符
'\x32' : 十六进制32对应的字符
6.字符型变量:
char ch;