P16-P33——C语言编程预备知识
1.CPU 内存条 硬盘 显卡 主板 显示器之间的关系
例子:打开一个电影,是如何在电脑上运行的
电影数据本身存放在硬盘里—双击点击电影(操作系统将硬盘上的数据调用到内存条上)—CPU处理内存条上的数据—声卡声音、显卡图像
CPU不能直接处理硬盘上的数据,先把数据调用到内存条中,CPU读取内存条中的数据并处理。
主板是提供它们联系和组合的设备
2.helloworld程序如何运行起来的
现在所有软件都不能直接访问硬件,只能借助操作系统控制硬件
#include <stdio.h>
int main(void)
{
printf("欢迎来到C的世界!\n");
return 0;
}
编译——连接(VC++软件生成后缀.exe的可执行文件)——运行(VC++软件请求操作系统执行.exe文件(操作系统调用数据至内存让CPU进行读取与处理))
3.什么是数据类型
编程的第一步是数据的存储——数据要分类
数据类型——存储什么类型的数据
数学上:整数、实数、有理数、无理数、字符
C语言: 1、基本数据类型:1)整数(整型int、短整型short int、长整型long int)
2)浮点数【实数】(单精度浮点数float、双精度浮点数double)
3)字符(单个字符char、字符串—一系列字符的组合)
2、 复合数据类型:结构体、枚举、共用体
4.什么是变量
变量——容器,把数据保存在计算机里是通过变量保存进去。
变量的本质就是内存中的一段存储空间
#include <stdio.h>
int main(void)
{
int i ; // 操作系统会在内存条中找到一个空闲的存储单元,并将i与该空间的地址产生关联
i = 3 ; // 3最终是存放在内存中与i关联的存储单元,程序终止之后3所占的空间被释放掉
printf("i = %d\n",i);
return 0;
}
5.CPU、 内存条、 VC++6.0 、操作系统之间的关系
编程软件vc++向操作系统请求运行,操作系统给内存条里分配变量空间,CPU读取内存条中数据进行处理(编译之后与vc++软件就没关系了)
6.变量为什么必须初始化
所谓初始化就是赋值的意思。
#include <stdio.h>
int main(void)
{
int i;
printf("i = %d\n",i);
return 0;
}
运行结果:-85986758,每次运次都是固定的没用的垃圾数据(以前软件使用过的遗漏的数据)(填充字——VC++软件看到垃圾值时会自动赋一个很大的值)
内存是在操作系统的统一管理下使用的。
软件在运行前需要向操作系统申请存储空间,在内存空间足够时,操作系统将分配一段内存空间并将外存中软件拷贝一份存入该空间中,并启动该软件的运行;
在软件运行期间,该软件所占内存空间不再分配给其他软件;
当软件运行完毕后,操作系统将回收该内存空间(注:操作系统并不会清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用
所以,一个软件所分配到的空间中极有可能存在着以前其他软件使用过后的残留数据,这些数据被称为垃圾数据。所以通常情况下,为一个变量或者数组分配好存储空间之后都要对该内存空间初始化。
7.如何定义变量
数据类型 变量名 = 要赋的值;
等价于
数据类型 变量名;
变量名 = 要赋的值;
举例子:
int i = 3 ;等价于 int i ;i = 3 ;
int i, j ; 等价于 ing i ; int j ;
int i,j = 3 ;等价于 int i ; int j ; j = 3;
8.什么是进制
逢几进一
N进制就是逢N进一
C语言规定八进制前要加0(注意是零不是o),十六进制前要加0x或者0X,十进制前面什么都不加
%d 表示以十进制输出;%x或%X表示以十六进制输出;%o表示以八进制输出
9.常量在C语言中是如何表示的
整数: 十进制:传统的写法
十六进制:前面加0x或0X
八进制:前面加0 (注意是数字零不是字母o)
浮点数:
传统的写法
float x = 3.2 ;// 传统
科学计数法
float x = 3.2e3 ;// x的值是3200
float x = 123.45e-2 ; //x的值是1.2345
字符:
单个字符用单引号括起来
'A' 表示字符A
'AB' 错误 "AB"正确
字符串用双引号括起来
"A"正确,因为"A"代表了'A' '\0' 的组合
10.常量以什么样的二进制代码存储在计算机中
计算机里所有数值都是二进制代码
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质实际也是与整数的存储方式相同
11.代码规范化
林锐 ——《高质量C/C++编程》
要有详细注释
成对去敲
地位相等要缩进、内部子代码不需要缩进
程序一般的三部分:定义变量、对变量进行操作、输出值
功能相对独立的代码部分换行
12.什么是字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位
1字节 = 8位
1K = 1024字节
1M = 1024K
1G = 1024M
13.不同类型数据之间相互赋值的问题
int i = 45 ;
long j = 102345 ;
涉及到补码——暂不考虑
14.什么是ASCII
#include <stdio.h>
int main(void)
{
char ch = 'A';
//char ch = "AB"; //错误因为AB是字符串,我们不能把字符串赋给单个字符
//char ch = "A"; //错误,ch只能盛放一个字符,但是“A”里面有两个字符——A和\0
//char ch = 'B'; //错误,因为ch已经在前面定义过了,这样会导致变量名被重复定义
//ch = 'C';//正确,变量可以多次赋值,但是不能重复定义
printf("%c\n",ch);
return 0;
}
结果:A
#include <stdio.h>
int main(void)
{
char ch = 'A';
//char ch = "AB"; //错误因为AB是字符串,我们不能把字符串赋给单个字符
//char ch = "A"; //错误,ch只能盛放一个字符,但是“A”里面有两个字符——A和\0
//char ch = 'B'; //错误,因为ch已经在前面定义过了,这样会导致变量名被重复定义
//ch = 'C';//正确,变量可以多次赋值,但是不能重复定义
printf("%d\n",ch);
return 0;
}
结果:65
规定A字符以哪个整数保存在计算机里,这就是ASCII.ASCII不是一个值,而是一种规定,规定了不同的字符使用哪个整数值去表示。
如:'A'——65,'b'——66,'a'——97,'b'——98,'0'——48
15.字符的存储
【字符的本质上与整数的存储方式相同】