1. CPU、内存条、硬盘、显卡、主板、显示器等之间的关系?
直接说它们的关系不太好说,下面是一个例子,可以简单的反映出计算机显示字符的工作原理.
我们按下键盘的键,这个按键的信息被送入计算机,计算机用ASCII码的规则,对其进行编码,将其转化为61H存储在内存的指定空间中;文本编辑软件从内存中取出61H,将其送到显卡上的显存中;工作在文本模式下的显卡,用ASCII码的规则解释显存中的内容,61H被当作字符"a",显卡驱动显示器,将字符"a"的图像画在屏幕上.
2. 计算机是怎么执行一个.c文件的?
我们用编译器对一个.c文件进行编译、链接后,最终生成一个.exe的可执行文件,当我们在编译器的操作界面点击执行时,首先,编译器请求操作系统执行这个.exe文件,操作系统会将这个可执行文件中的程序加载入内存,设置cs:ip指向程序的入口,CPU开始运行程序.
3. 什么是数据类型?
① 基本数据类型
★ 整型
整型 — int ---- 4 字节
短整型 — short int ---- 2字节
长整型 — long int ---- 8字节
★ 浮点型
单精度浮点型 — float ---- 4字节
双精度浮点型 — double ---- 8字节
★ 字符型
字符型 — char ---- 单字节
② 复合数据类型
★ 结构体
★ 枚举
★ 共用休
3. 什么是变量
变量的本质是内存中一段存储空间.
int i = 3;
比如上面这条语句,当程序加载进内存后,系统会分配一段内存空间来存储 3,而存储3的这段内存空间就会与变量 i 产生关联. 当我们在使用变量i 进行运算时,其值其实这段内存空间的内容,也就是3.
4. 变量为什么要初始化?
变量在使用之前,需要进行初始化处理.
int i;
上面这条语句,只是定义了变量i,并没有初始化,当程序加载进内存,i与一段内存相关联,这段内存里的值是不确定的(变量没有进行初始化),这段内存里的可能是以前程序的遗留值(垃圾值),这对于我们来说是没有意义的.
5. 如何定义变量
数据类型 变量名 = 要赋的值
等价于:
数据类型 变量名;
变量名 = 要赋的值;
int i = 3; 等价于 int i; i = 3;
int i, j; 等价于 int i; int j;
int i, j = 3; 等价于 int i; int j = 3;
int i = 1, j = 3; 等价于 int i = 1; int j = 3 等价于 int i; int j; i = 1; j = 3;
6. 进制转换
十进制:逢十进一
二进制:逢二进一
八进制:逢八进一
十六进制:逢十六进一
对于十进制数据:100D
对应的二进制是:01100100B
对应的八进制是:144O
对应的十六进制是:64H
它们表示的都是同一个数,只是同一个数的不同表现方式.
c语言printf函数中:
%d 表示十进制
%o 表示八进制
%x 表示十六进制
0704:进制转换
7. 常量在C语言中是如何表示的?
① 整型:
★ 十进制:传统的写法
int i = 100
★ 八进制:前面加零
int i = 0144
★ 十六进制:0x或0X
int i = 0x64
② 浮点型:
传统的写法:
float i = 123.456
科学计数法:
float i = 1.23456e2
③ 字符型:
单个字符
用单引号括起:'A'
char i = 'A';
用双引号括起:"A" 表示 'A' 与 '0' 的组合
char i = "A";
多个字符:
用双引号括起:"AB"
'AB'这样的写法是错误的.
8.常量是以什么样的二进制代码存储在计算机中
整数是以补码的形式转化为二进制代码存储在计算机中;
浮点数是以IEEE754标准转化为二进制代码存储在计算机中的;
字符的本质实际也是与整数的存储方式相同.
原码、反码、补码不懂的看如下链接.
关于编程哪些事:原码、反码、补码 详解!不懂的请看过来!