C语言编程预备知识
CPU 内存条 硬盘 显卡 主板 显示器之间的关系
例:点击一个视频文件,电脑桌面就能出现一个视频,供大家观看
原理:操作系统提供一个点击指令,然后从硬盘读取对应文件,放置到内存条中,CPU处理内存条中的数据,生成一个结果(变成相应的声音、图像),然后通过声卡及显示器来显示声音和图像。(其中主板提供各个插槽,是用于各个模块之间的连接、转换)
C程序如何运行起来的
C语言编写程序是源程序,然后通过编译器翻译成二进制的目标程序,然后再将目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序
什么是数据类型
-
基本类型
-
整数
-
短整型 ---short int ---占用2个字节
-
整型 ---int ---占用4个字节
-
长整型 ---long int ---占用8个字节
-
-
浮点数(实数也就是小数)
-
单精度浮点数 ---float ---占用4个字节
-
-
双精度浮点数 ---double ---占用8个字节
-
-
字符
-
单个字符 ---char ---占用1个字节
-
-
-
复合类型
-
结构体
-
枚举
-
共用体
-
什么是变量
变量的本质就是内存中一段存储空间
CPU 内存条 C 编译器 操作系统之间的关系
C编译器定义一个变量i=3,操作系统给变量i在内存条中分配一个空闲的存储空间(用来存储i的值),CPU用来调用内存条中的数据
变量为什么要初始化
所谓初始化就是赋值的意思
内存是在操作系统的统一管理下使用的
-
软件在运行前需要向操作系统申请存储空间,在内存空闲空间足够时,操作系统将分配一段内存空间并将外存中软件拷贝一份存入该内存空间中,并启动该软件运行
-
在软件运行期间,该软件所占内存空间不再分配给其他软件
-
当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用
综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称为垃圾数据。所以通常情况下我们为一个变量、一个数组,分配好存储空间就之后都要对该内存空间初始化!
如何定义变量
数据类型 变量名 = 要赋的值;
等价于
数据类型 变量名;
变量名 = 要赋的值;
例:
int i = 3; 等价于 int i;i = 3;
int i , j ; 等价于 int i;int j;
int i,j = 3; 等价于 int i;int j; j = 3;
int i = 3, j = 5;等价于 int i;int j;i = 3; j = 5;
int i,j;i = j = 5; 等价于 int i;int j;i = 5; j = 5;
什么是进制
就是数值一种表现方式,常用的有二进制、八进制、十进制、十六进制
二进制:逢二进一
八进制:逢八进一 (C中八进制前面加0,是数字0而不是字母o)
十进制:逢十进一
十六进制:逢十六进一 (C中十六进制前面加0x或0X)
-
-
二进制转八进制 从右向左,三位一段,分别转化,不够三位在最左侧补零
-
例:0101110 转换为8进制数为56
-
-
二进制转十进制 乘权相加 (2的幂)
-
二进制转十六进制 从右向左,四位一段,分别转化,不够四位在最左侧补零
-
例:0101110 转换为16进制数为2E
-
-
十六进制转二进制 将每一个16进制转换为四位二进制
-
八进制转二进制 将每一个8进制转换为三位二进制
-
十进制转二进制 除2取余倒记
-
十进制转八进制 除8取余倒记
-
十进制转十六进制 除16取余倒记
-
-
printf的用法:
-
%d表示以十进制输出
-
%o(字母o)表示以八进制输出
-
%x或%X表示以十六进制输出
-
常量在C语言中如何表示的
-
整数
-
八进制 前面加0,是数字0而不是字母o
-
十进制‘ 传统写法
-
十六进制 前面加0x或0X
-
-
浮点数
-
传统写法
-
float i = 1.23;
-
-
科学计数法
-
float i = 123.45e-2;//表示123.45*10的-2次方等于多少? i = 1.2345
-
-
-
字符
-
单个字符用单引号括起来
-
'A'表示字符A
-
'AB' 错误
-
"AB" 正确
-
-
字符串用双引号括起来
-
"A" 正确,因为"A" 代表'A'和'\0'的组合
-
-
常量以什么样的二进制代码存储在计算机中
-
整数是以补码的形式转化为二进制代码存储在计算机中的
-
实数是以IEEE754标准转化为二进制代码存储在计算机中的
-
字符的本质实际也是与整数的存储方式相同
代码规范化
-
成对敲:代码符号需要成对敲,防止代码量过大时,编译出现问题时,不易查找
-
缩进:属于包含于内包含,需要缩进
-
换行:一行代码是相对独立的、完整的,为了易读性,就需要换行
-
空格:优先级比较低的地方空格
什么是字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位
-
位(bit):是计算机内部数据,存储单元的最小单位, 1100 1100是一个八位二进制数
-
字节(byte):是计算机中数据处理的基本的单位,习惯上用大写B来表示
-
1B(byte,字节)=8bit(位)
-
字符:是指计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节 1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
-
1024G=1TB
不同类型数据之间相互赋值的问题
什么是ASCII
ASCII不是一个值,而是一种规定
ASCII规定了不同的字符使用哪个整数值去表示
例:'A '= 65;'B' = 66;
字符的存储
字符的存储本质上与整数的存储方式相同