程序员人生 网站导航

添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础

栏目:综合技术时间:2016-09-06 15:11:50


C语言介绍

C语言基本是每一个编程人员必学的1面语言,很好掌握,是理解编程的关键。很多编程语言基于其编写或基于此语言的衍生品编写。


C语言是人机交互的1个基础语言之1,虽然是之1,单1般其实就是唯1。


偶尔用汇编

其他非C的我没见过,理论上是存在的。没有C之前大家用的,有了C以后估计就少了。

有了计算机操作基础,可以学习编程了,推荐从C语言开始学习,使用这本书进行学习《C程序设计语言》,此书是C语言的作者编写就知道是多么的权威了,同时此书有英文版本《C程序设计语言(英文版)》,建议都买了学习,毕竟作为计算机学生,英文不好是不行的,很多国外的先进的东西都是英文的。另外也有1遍习题解答,也同时买了。里面的题目都做1遍,编程水平不会差。如果想继续提高C语言的水平,可以看看其他相干图书,比如《C指针》等1堆。




参考图书:C语言的图书比较多,1般国外的都是精品,国内的基本就算了。1本书很难学好,多读些图书吧。下面也只是冰山1角。还有很多就不逐一罗列。基本铛铛4星以上的都可以买了看看。






参考视频学习网站:

1 玩转 C语言 基础课堂

2 C语言/C++学习指南 (语法篇) 入门到精通(打算开发Windows看看,Linux的参考)。

3 C语言也能开发网站(高级课程,而且比较高级,长个见识看看)。

4 计算机专业的课程体系,里面有个C语言程序设计。


参考资料:

1 http://www.cprogramming.com/里有个c-tutorial。

2 高质量C++/C编程指南 林锐 博士


学的更好点的,可以参考github上的C项目代码看看。比较出名的推荐几个:

1 https://github.com/antirez/redis 

2 https://github.com/nginx/nginx

可以上网搜索GCC: The Complete Reference等内容查看学习。


上面的内容,如果都学好了,基本算入门,您可以自己学习了,师父领进门,修行靠个人了。


C语言的灵魂-指针


指针

1个变量寄存1个变量的地址(A point is a variable that contains the address of a variable)

指针的指针

指针函数

函数指针


很难学,但是希望你学好!

很难学,但是希望你学好!

很难学,但是希望你学好!


如何检验学习效果?

神1样的指针:

int *p;

1个指向整型数据的指针。


int **p;

1个指针的指针,它指向的指针指向1个整型数据。**p 是 int 类型,所以 *p 是int *类型,即*p是1个指向int的指针,所以p是1个指向int的指针的指针。


int *p[10];

1个有10个指针的数组,该指针指向整型数据。p[10] 的类型是 int *,所以 用type 替换 int *,也就是 type p[10],即p中每一个元素都是type类型。


int (*p)[10];

1个指向有10个整型数据数组的指针。()是为了当1个整体看待,所以用val替换(*p),上式变成int val[10],所以*p 相当于数组名(即数组的首地址),所以p是1个指向数组(该数组包括10个Int数字)的指针。


int * p(int);

就1个函数(不是函数指针),该函数有1个整型参数,返回值为1个指向整型的指针


int (*p[10])(int);

1个有10个指针的数组,该数组中的指针指向1个函数,该函数有1个整型参数并返回1个整型数。根据p[10]是1个函数指针,所以p中每一个元素都是1个函数指针。


int (*p)(int);

定义了1个参数为int,返回值为int的函数指针,函数指针名是p。如果初始化了 p , 则可以通过 p( int ) 调用函数。


代码流程

全部流程要清楚

   编码

   编译

   履行

   打包

   安装


另外就是看开源项目源码,是不是能够完全看懂并修改。

比如Nginx,Redis等


在我们课程系列的操作系统有个GeekOS实验,也能够检验。

GeekOS是不错的检验项目,强烈推荐在校学生仔细研究学习。


这个项目我在读硕士时候做过,2周时间,只能看到项目2,1共7个,都做下来就很了不起了,可以做1个学期,渐渐做。里面有部份汇编代码,汇编也学下。

工作中的实际使用情况


基本不用!

   用到的基本是著名的,比如Nginx,Redis等。

   自己修改代码的情况不多

   基本是C++或Java,或其他


不过也有很多公司需要根据本身的情况调剂某些开源项目代码的,所以可以看看开源代码,或说认真学习研究1个。在这类公司也有需求。


如果你是嵌入式等行业的就例外了。


总结

好好学,值得你好好学和你的付出。

个人觉得大学生怎样花工夫在此语言上都不为过。

考研用/软考用/很多高级语言的基础/…...

只是为了工作的例外,你可以只学Java,Js等当简单的码农。


掌握了这个,理解其他的都容易些。


致敬

C语言作者之1Dennis M.Ritchie(丹尼斯·里奇)


丹尼斯·里奇,C语言之父,UNIX之父。

丹尼斯·里奇与肯·汤普逊两人发展了C语言,同时发展了Unix操作系统。

在电脑工业史上占有重要的席位。


欢迎加入程序员的世界,添物科技为您服务。

欢迎关注添物网的微信(微信号:tianwukeji),微博(weibo.com/91tianwu/),或下载添物APP,及时获得最新信息。
免费加入QQ群:557373922(内有干货)。
添物网(http://www.91tianwu.com)出品
转载声明:本文系添物网原创出品,转载本文请标明出处,完全标注来源[添物网],(包括链接http://www.91tianwu.com)



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐