文件起名不要用汉字
ctrl + s 保存
养成打空格的习惯
关闭记得关项目
只用保存根目录(其他的都是临时的文件)
各个硬件之间的关系
cpu 内存条 硬盘 显卡 主板 显示器
硬盘放东西 鼠标调用到内存条通过CPU处理(不能直接处理) 到显示器
声音数据发送到声卡 图画显示通过显卡到显示器
主板提供中间传输的设备(cpu 硬盘 显卡 内存条)
程序运行过程(如何运行)
编译(compile)和链接(build)生成后缀是.exe的记事本程序
可执行的exe程序
感叹号传输信号给操作系统 调用内存条信号给cpu 执行
所有运行都是靠cpu 底层操作
不能直接访问硬件
数据类型 (数据存储之前应该存储)
基本类型数据
< 整数 整型 4字节 -- int 短整型 2字节 -- short int 长整型 8字节 -- long int
浮点数(实数) 单精度浮点数 4字节 -- float(多了可能会丢失或者无法储存) 双精度浮点数 8字节 -- double
字符 单个字符 存储应该用char 1字节>
复合类型数据
结构体 枚举 x共用体x
变量 int = i
i = 3;再输出 //3最终是存放在内存中,程序终止后3所占的空间被释放掉了
运行;请求操作系统到内存条,找到空闲的盒子,使i和他产生关联,让盒子里有i,i =3。
使用变量是为了方便数据的存储(字母,对应空闲的单元)
变量的本质就是内存的存储空间
cpu 内存条 操作系统
软件请求操作系统,在内存条里寻找空间(字母对应的存储空间),之后就可以通过cpu运行起来了
之后通过显卡声卡到显示器和发声设备
****重要****
变量为什么要初始化(常见的初始化就是赋值,(int i/i = 1;//))
所谓初始化就是赋值的意思(没有对变量进行赋值)
内存可能里面会有之前残留的垃圾值(值一般是确定的,例如i为8.6多),这个值叫 填充值
内存在运行期间所占的内存空间不再分配给其他的软件
使用完之后会将空间回收该内存空间,不清空遗留下来的垃圾,所以得初始化来清除以前的垃圾数据
数据类型
变量名 = 要赋的值;
等价于
数据类型 变量名;
例子: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,j; i = 5; j = 5;
进制;
二进制:逢二进一;
一周七天:七进制; 一年十二个月:十二进制;
电脑数据 : 二进制;0 1 ;
八进制前面要加0;eg 05) 十六进制前面要加0x; eg 0x5)
常量的表达
进制:
十进制 传统的表达方式
十六进制 0x或0X
八进制也是前面 加零(不重要)
浮点数:
(传统写法 float x =3.2;//传统
科学计数法 float x =3.2e3; //x的值是 3200
float x =123.45e-2; //x的值是1.2345)
字符:单个字符用单引号 'A'表示字符A 'AB'是错误的 "AB"是正确的
字符串用双引号 "AB"是正确的,"A"表示'A''\0’的结合
编码
int i = 86 (86是二进制的)
整数是以补码的形式转化为二进制代码存储到计算机中的
实数是以IEEE754标准转化为二进制代码储存到计算机中的
字符的本质实际也是与整数的储存方式相同
代码规范 (参考书 《高质量C/C++编程》--林锐)
空格 代码要成对敲 缩进
程序三部分 : //定义变量
//对变量进行操作
//输出量
相对独立的程序要进行换行 要在最低级别的地方敲空格
字节 字节就是存储数据的单位 并且是硬件所能访问的最小单位
硬件里最小只能精确到字节而不是位 一字节为八位 八位一字节(cpu控制时只能控制内存里的一个字节,不能控制到‘位’)
1字节 = 8位; 1k = 1024字节; 1m = 1024k; 1g = 1024m;
由于计算方式不一样所以内存会有差别(1000和1024,所以识别会出现误差)
不同类型相互赋值 (*补码* 搞清楚了就自然清楚了)
{暂时不用考虑学}注意不要来回转换就好了
int i = 45;
long j = 12345;
i = j;可能会丢失数据(除非刚好可以放下,最好不要相互转换,C语言可以相互转换)(java溢出会报错)
printf("%ld %d\n",i,j);
float x = 6.6;
doube y = 8.8;
printf ("%f %lf\n,x,y");
int i = ;
关于ASCII (不能定义两次,可以赋予多次) 字符是不能赋给字符串的
ch不去定义的时候只能存储一个字符 ch不能定义两次会出错 前面定义了后面再次定义就会出错
//char ch = 'A';//ok 等价于 char ch ; ch = 'A';(定义后面c值的变量;将A赋给他;后面可以再次赋予但是不能再次定义,下面的赋予只有ch =**才算赋予,char ch =**是定义)
//char ch = "AB";//error 因为我们不能把字符串赋给单个字符 不能用双引号(不能赋予一个变量,是两个) 单引号只能括单个字符
//char ch = "A" // "A"是 'A' '\0' 的组合(\0是默认加的字符)//error
ch只能赋一次值,后面再次定义就是常数值,所以定义后ch可以赋予一个新的值,而这里char是一个被定义的常数(所以 ch = 'C'; 是正确的)【所以后面再次定义时是输出后面的C】
C语言采用ascii
什么是ASCII : 不是一个值,而是一种规定,ASCII规定了不同字符是使用哪个整数值去表示【规定了 'A' -- 65; 'B' -- 66; 'a'-- 97; 'b' -- 98; 'o' -- 48;】就是说A的ASCII是65
规定ch哪个容器(代码)保存的就是ascii,就是规定ch是什么的代码就是ASCII
ch是以二进制代码存储的,可以与十进制相互转化
字符的存储 : 字符本质上与整数的存储方式相同//
基本的输入和输出函数的用法
输出printf() //输出变量
输入scanf() //把键盘上的字符转化为数字赋给变量 (相对来说不重要,因为在Java里已经没有了)
【初学者的建议(越后越简单): 要注意基础 但是可以通过不断的敲代码进步】