周哥简介
周哥:男,真名周扬荣,毕业于中科院软件所。曾就职于阿里巴巴,奇虎360安全公司,SUN中国工程研究院,北大计算机研究所等。
课程内容介绍
这是一套直接面向企业需求和底层开发的高标准C语言学习教程。
C语言学习意义:
1.曾经就职于Amazon和Google的卓越程序员Steve Yegge在他的文章《几种编程语言的优缺点》以及《程序员的呐喊》中指出“你必须懂C”,因为C最懂冯诺依曼计算机,而冯诺依曼计算机是当今计算机的架构标准。
2.底层开发必备
绝大多数的底层软件,包括操作系统(如Windows, Linux, UNIX等),数据库软件(如MySQL),办公软件(如OpenOffice),杀毒软件(如360),网络通信协议(如TCP/IP),加解密库(比如OpenSSL),包括JAVA,Python,PHP等语言的实现,以及各种内核驱动等都是用C语言开发的。C语言作为编程语言之王,是当之无愧的
3.安全攻防必备
4.高效率开发必备
JAVA JNI
Php C扩展
学会了难学的C语言,其它语言小菜一碟
5.说:“我们最终是靠C打天下的”
课程勘误
第1课:“Hello world=》程序基础概念入门讲解=》了解:PE格式(PE文件的结构)”中
PE加载基地址默认值应该为:0x400000,而不是0x4000000(后面多了一个0),但其实无论是0x400000还是0x4000000都可以,在VC工具里,程序加载的基地址ImageBase可以在项目属性的链接器(linxer)的高级选项里通过/BASE:"0x400000"来指定。而且更高版本的操作系统比如Windows里,已经引入了地址随机化,因此,加载的基地址会动态随机变化而不再是一个固定值,提高了系统的安全性。
第2课:整数进制转换里面有个错误,10进制100 0x01100100 应该是 0x64,不是0x68,大概在35分钟左右那里。
第10课:一维数组定义与实例:
const int x = 10;
int a[x];
这个实际上是不支持的。const类型的变量并没有明确规定是编译阶段常量还是运行期间常量,有可能会推迟到运行期间初始化。
如果在新的C++11标准下,可以修改为:
constexpr int x = 10;
int a[x];
这样就支持了。constexpr是C++ 11引入的新关键字,明确定义了上面的x是编译阶段常量。
第13课“二级指针”一节:37分50秒这个位置,ptr2=*ptr1,这个时候*ptr1是p1,所以ptr2的值就p1的值,p1指向i,所以ptr2也应该是指向i的(即ptr2里存放的是i的地址)。所以,画箭头的时候,画错了,ptr1这个时候指向的不是p1,指向的是i。也就是ptr1和p1相等(里面存放的是i的地址),都是指向i的
第17课第二节“宏的二义性”里,#indefine写错了,应该为#define
勘误提示:如您在学习过程中发现任何“错误”,请告知我们错误所在的课程名称和错误所在视频的时间起始位置。错误一经我们确认,我们将会在该门课程的“课程概述”里提供“错误更正”信息,并对您表示衷心的感谢。