零基础如何学习C语言?

如题所述

学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。 

一、要读就读好书,否则不如不读。所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。

切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。

二、Unix/Linux还是Windows,这是个很大的问题。不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。

建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-02

指针,就像学校的信箱一样。你跟别人说,给我写信,寄到XXXX大学509号信箱,别人怎么知道509信箱是啥?不过他不用管,只管把信发过来,到时候你去箱子里取东西就是了。只要这么想,就拿指针当信箱吧,往那里送信行了,其它不管,一切问题就简单了。

c与机器联系紧密,抽象程度不是太高,所以机器层面的地址也拿过来了,改名叫指针。
遇到指针,要读成“地址变量”,其实指针就是一个存放整数(地址就是一个整数)的变量而已,多少级都是如此。

比如,有一间房子,它的地址是:人民路108号。这个房子相当于一个变量。如果它是普通变量,则房子里可能今天住的是张三,明天住的是李四。张三、李四就是这个变量的值。通过访问这间房子,我们可以直接找到张三或李四。如果它是一个指针变量,则房子里不住具体的人,而是放一张纸条,上面写:‘南京东路77号’。‘南京东路77号’是一个什么东西?是一个地址。通过该地址,我们继续找,结果在‘南京东路77号’里找到张三。变量的存储的值可以改变,指针变量的值同样可以变更:过一天,我们再去访问这个房子,纸条变了‘珠海路309号’,通过它,我们找到的是另一个人。

“&和*”,它们是一对相反的操作,’&’取得一个物的地址(也就是指针本身),’*’得到一个地址里放的物(指针所指向的物)。这个东西可以是值(对象)、函数、数组、类成员(class member)等等。


理解什么是'多级指针':
有一个事件:C住在了某酒店的房间里,他的房间号码是1001。B知道C的房间号码是1001,而B住的房间号码是1081。现在A想要找到C,但是A不知道C的房间号码是多少。但是A知道B一定知道C的房间号码。所以A去1081房间去找B,A问B:C的房间号码是多少。B告诉A:C的房间号码是1001。这时候A就可以直接去1001号房间找到C。

相似回答