哈佛C++公开课

一、哈佛计算机CS50
网课连接:http://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html
1、bit=binary digit,bi是2。
2、平时只写8 4 2 1,实际可以写作:
128 64 32 16 8 4 2 1
这样就是8位bit对应的权值。
3、C语言中的大括号等都是人文约定的,GCC后产生的a.out,为什么是out,这也是认为约定的。
4、printf()中f代表格式化输出。

string name="David";
printf("hi,%s\n",name);//%s代表占位,不确定是什么,只占个位置

5、当需要首尾相接,循环时,可以用到取余%。
6、C语言给你访问硬盘权限是很低的,所以需要定义变量类型,操作系统才知道要分配多少内存。
(为什么python不需要声明类型:https://blog.csdn.net/qq_39112101/article/details/91382989)
7、
在这里插入图片描述
用make 而不是g++ test3.cpp时,首先得到的是make执行的命令。
make is first showing me the commands that it is executing on my behalf.
8、word中使用无限循环,比如,打开word就会无限次检查拼写错误等。所以无限循环不一定是坏事。
9、计算机的存储空间有限,精度也有限。
10、哈佛从一开始就传输:写程序要有良好的习惯;注重安全;知识点颗粒很粗,但清晰;不要单打独斗。
11、听这门课程感受到哈佛老师开放的心态
12、使用简单的代码,可以体会精髓,而不必被繁杂的知识点分心。
13、HTML不是编程语言,而是标记语言,涉及美学多于逻辑的语言。
14、好的方法不只一种
15、编程:正确性,设计,风格。
设计:好的方法不只一种,提出让人信服的方法。
风格:有注释等好的习惯。
16、数组是一段连续的存储空间。
17、内存中0地址是给操作系统预留的,自己写的代码不可能用到0地址。如果程序返回一个地址是NULL,也就是0地址,意为出错了。
内存有些地方是给操作系统预留的,如果访问到这些地方,比如数组访问越界,就会闭掉程序。
18、数字就是字符,字符就是数字,取决于想看的呈现出来的形式。
19、冒泡排序运算最差是N的平方次。
选择排序总是N的平方。
归并排序:Nlog(N),这里是以2为底。
20、算法:N的平方,N,log(N)。log(N)是我们追求的,因为N增加时,log(N)增加缓慢。
21、递归令人糊涂的地方是返回时,回到哪里。
“指针文件传输”
22、相同的符号在不同的环境下意义不同,*放在int 后,指针。*放在指针前是,取地址中的量。
23、子函数调用完成后,遇到子函数的最后一个“}”时,释放内存,这里的释放是指计算机不记得这部分内存是什么,而不是内存的内容清空或赋值为0。
24、指针就是把房间的地址给它了,然后想在里面做什么就做什么。
25、NULL在计算机中表示为Ox00,这是0地址,这个地址只用操作系统能够控制,如果返回这个地址,一定有哪个地方出错了。
数独
26、变量如果不赋值,可能得到内存中的残差,比如之前曾在内存中输入过一些值,后来不用了,这个内存又被变量占用了。
27、内存中,分配“堆”的空间,使用后需要释放,才能释放。
28、在RAM 中高地址在下,低地址在上。如果main()函数调用子函数foo(),则main中的变量是高地址,在RAM的下面,foo()中的变量地址是低地址,在上,随着程序进行,栈在增长,朝着低地址的方向增长。
29、如果赋值到数组的值超过数组设定的范围,数组越界,超过的部分可能触及重要的信息,比如调用子函数时的返回值。
用户体验
1、解决哈希冲突的两种方法:线性探测、分离链接
2、
网络编程
1、TCP保证从A 到B 发送数据时,B 一定收到,否则重发。
2、IP 保证每个终端有一个地址。


版权声明:本文为weixin_44594953原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。