我的C语言启蒙老师是郝斌老师,真的非常感谢郝斌老师带我进入到编程的世界。以前上大学的时候没有学C,直到一脸懵逼才意识到C的重要。少壮不努力,老大徒伤悲。读了研究生才深切地认识到自己太菜了,诚心悔过。看了郝斌老师的视频之后,讲的真的很通透,特别适合0基础的亲们学习。中间穿插着看过一些C的教材还有别的老师讲的视频。以下根据以往所学进行整理,如有错误,敬请指正。新手小白,一直在路上。
一:预备
1:cpu,内存条,硬盘,显卡,主板,显示器之间的关系(不是很明白的可以问度娘)
2:一个程序是如何运行起来的?
源程序(如my.c)编译 –>链接–> 生成.exe可执行文件(如my.exe)–>运行
3:什么是数据类型?
4:变量是什么?变量为什么要进行初始化?
4.1 变量的本质就是内存中的一段存储空间。
以下画个草图说明(PS:丑丑的字不要介意哦)
执行int a时,操作系统会在内存中分配一个空闲的没有被占用的单元。然后会把这个单元的地址与a产生一种关联。3最终是放在内存中,程序终止之后3所占的内存空间被释放。如果不使用变量,就得自己编程寻找内存中的空闲单元,内存中有很多单元,每个单元都有编号,要记编号很麻烦。
所以,利用变量可以方便对数据的存储,系统内部会产生一一对应关系。
4.2 变量为什么要初始化?敲黑板
#include<stdio.h>
void main()
{
int i;
printf("i=%d\n", i);
system("pause");
}
vs2013这样会报错 error C4700: 使用了未初始化的局部变量“i”,有的低一点儿的可能会输出类似于-858993460之类的垃圾值。
为什么呢?
因为在软件运行期间,该软件所占的内存空间不再分配给其他软件。当软件运行完毕后,操作系统将回收该内存空间(注:操作系统并不清空该内存空间中遗留下来的数据),以便再次非配给其它的软件使用。所以,当执行 int i时,操作系统会分配一段空闲的单元,但是这个单元可能会有以前软件使用遗留的数据(垃圾值),随机值。所以,通常情况下,我们为一个变量,为一个数组分配好存储空间之后都要对该内存空间进行初始化!
5:什么是进制?
现实中,一周7天,一天24小时,一年12个月。这都可以看作是进制。进制就是逢几进一。
计算机只识别二进制。人类最习惯使用十进制。为了实际需要,建立了八进制和十六进制。
C规定,八进制前加0(不是字母O),十六进制前加0x或者0X,十进制不加。
6:常量在C语言中是如何表示的?常量以什么样的二进制代码存储在计算机中?
我又懒得打表敲公式了,直接上图,简单粗暴。
常量中,整数以补码的形式转化为二进制代码存储在计算机中。
浮点数以IEEE754标准转化为二进制代码存在计算机中。
字符的本质实际也是与整数的存储的方式相同。’A’–>ASCII 65 –>补码
7:什么是字节?
字节就是存储数据的单位,并且是硬件所能访问的最小单位。
1字节=8位 1K=1024字节 1M=1024K 1G=1024M
16G的U盘能存多少0101代码呢? 16*1024*1024*1024*8