=========================================================================
基础一——基本数据类型
1.进制转换:
二进制、八进制、十进制、十六进制
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
二进制、八进制、十六进制 -> 十进制
对应位 * 对应位的权值再求和
123 == 1 * 100 + 2 * 10 + 3 * 1
== 123
1001 1110 -> 158
17 -> 15
1af -> 15 + 160 + 256
-> 431
十进制 -> 二进制、八进制、十六进制
十进制数除以进制数得到的余数逆序排列
二进制 八进制 十六进制:
八进制1位对应二进制3位
十六进制1位对应二进制4位
2.程序如何在C语言中被运行起来?
程序(外存中)
执行(加载到内存中)
程序运行结束(回收内存空间)
3.数字在内存中的存储:
正数在计算机中存放对应的二进制数
负数在计算机中存放补码
1.原码 1010101
2.反码 0101010
3.补码 0101011
4.内存数据 符号位+0101011
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.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位尾数位
IEEE754 :
*******浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中
******和整数存储方式完全不同
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值均为逻辑真值
在C语言中所有的0值为逻辑假值
5.缺省类型:
void
搭配函数和指针使用
void a;
2.常量和变量:
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;
7.字符串常量
8.标识常量
作业:
1.课后习题3.3
3.3
(1)12,A(2)40,20(3)113,4B(4)-1151,-269(5)-157,-6F(6)-4463,-B1B
(7)-67756,-6FEE(8)-51013,-520B
3.7