- 手把手教你學(xué)C語言
- 吳明杰 曹宇 吳丹
- 1199字
- 2018-11-08 18:15:33
2.3 常見問題答疑
2.3.1 學(xué)習(xí)Java之前為什么建議先學(xué)C語言
這個我們在前面已經(jīng)講過了,但是講得不是很系統(tǒng)。關(guān)于學(xué)習(xí)Java之前為什么要先學(xué)C語言,我總結(jié)了三點(diǎn):
1)學(xué)習(xí)C語言就是在學(xué)習(xí)Java,因?yàn)镃語言中至少80%的語法知識都被Java繼承了。Java剛開始的前半部分,如數(shù)據(jù)類型、變量、流程控制、數(shù)組、函數(shù),這些知識同C語言幾乎是一模一樣的。
2)C語言是面向過程語言的代表,學(xué)好C語言有助于學(xué)習(xí)Java中面向?qū)ο蟮乃枷搿G懊嬲f過,要想知道什么是面向過程、什么是面向?qū)ο缶捅仨氁斜容^。你將C語言學(xué)完之后,再學(xué)習(xí)Java中函數(shù)的時候就會發(fā)現(xiàn),它們的語法規(guī)則是一模一樣的,但用法完全不一樣。如果你直接學(xué)習(xí)Java,就會覺得本應(yīng)該那么使用,這樣就無法深刻體會什么是面向?qū)ο罅恕?/p>
3)C語言中最重要的是指針,后面會詳細(xì)地介紹指針。C語言中有兩個知識點(diǎn)可以說是其所獨(dú)有的,一個是函數(shù),另一個是指針。C語言中的指針是理解Java中“引用”的基礎(chǔ)!Java中引用的本質(zhì)就是指針。如果不懂指針就不可能對Java中的“引用”有深刻的理解。而如果你無法深刻理解Java中的“引用”,那么稍微復(fù)雜一點(diǎn)的Java程序你基本上就看不懂了。
2.3.2 沒學(xué)過計(jì)算機(jī)專業(yè)課程能夠?qū)W懂C語言嗎
很多學(xué)過C語言的人都知道,C語言這門課很難。那么沒有學(xué)過計(jì)算機(jī)專業(yè)課程能不能將C語言學(xué)好呢?首先肯定是能學(xué)好的,因?yàn)楹苊黠@C語言不是只有計(jì)算機(jī)專業(yè)的學(xué)生才學(xué)的。我之所以寫這本書,目的就是讓那些沒有學(xué)過計(jì)算機(jī)專業(yè)課程的讀者也能將C語言學(xué)好。學(xué)習(xí)C語言需要一些計(jì)算機(jī)底層的專業(yè)知識,不多,但是這些知識很重要。這些知識我會穿插在這本書中給大家講述。
2.3.3 英語和數(shù)學(xué)不好能學(xué)好C語言嗎
很多人都有這樣一個疑問:“程序里面全是英文,可是我英語不好能學(xué)編程嗎?”當(dāng)然能!能不能學(xué)好C語言跟英語關(guān)系不大。這一點(diǎn)英語專業(yè)的讀者應(yīng)該最有體會,他們所學(xué)的英語知識對學(xué)習(xí)C語言并不會有太大的幫助。雖然程序中看起來好像全是英文,但里面不涉及任何英語語法,有的就是幾個孤立的單詞。事實(shí)上程序中真正的英文單詞是很少的,大部分都是想怎么寫就怎么寫。只有32個單詞是必須要記住的,這32個單詞就是C語言的關(guān)鍵字(由系統(tǒng)定義,不能重作其他定義)。

這32個關(guān)鍵字到后面大多數(shù)都會講,除了最后的enum、goto、union和volatile。因?yàn)檫@四個幾乎不用,所以不講,你們也不用看。所以就剩28個了,就算從來沒有學(xué)過英語的人,記憶28個英文單詞應(yīng)該也不是什么難事!
另外一個是數(shù)學(xué)。因?yàn)镃語言里面有函數(shù),數(shù)學(xué)里面也有函數(shù)。那么數(shù)學(xué)與C語言是什么關(guān)系呢?C語言的函數(shù)同數(shù)學(xué)的函數(shù)思想本質(zhì)是一樣的,但是表面上看沒有任何關(guān)系。可以這樣說,學(xué)習(xí)C語言只要有初中的數(shù)學(xué)知識就足夠了。學(xué)習(xí)C語言用到的數(shù)學(xué)知識非常少,要想學(xué)好C語言關(guān)鍵是多動手,多“敲”代碼,多實(shí)踐。
在計(jì)算機(jī)領(lǐng)域也需要非常高深的數(shù)學(xué)知識,即研究那些非常高深的算法的時候。對于一般程序員而言,學(xué)習(xí)編程只需要有初中的數(shù)學(xué)知識就夠了,那些高深的數(shù)學(xué)知識估計(jì)一輩子都用不上。
- Spring Cloud Alibaba微服務(wù)架構(gòu)設(shè)計(jì)與開發(fā)實(shí)戰(zhàn)
- Oracle從新手到高手
- MATLAB圖像處理超級學(xué)習(xí)手冊
- 少年輕松趣編程:用Scratch創(chuàng)作自己的小游戲
- Spring實(shí)戰(zhàn)(第5版)
- Oracle BAM 11gR1 Handbook
- Learning Salesforce Einstein
- Java Web開發(fā)實(shí)例大全(基礎(chǔ)卷) (軟件工程師開發(fā)大系)
- Java7程序設(shè)計(jì)入門經(jīng)典
- Python應(yīng)用與實(shí)戰(zhàn)
- Python高性能編程(第2版)
- Drools 8規(guī)則引擎:核心技術(shù)與實(shí)踐
- Clojure High Performance Programming
- C#入門經(jīng)典(第7版):C# 6.0 & Visual Studio 2015(.NET開發(fā)經(jīng)典名著)
- 自然語言處理NLP從入門到項(xiàng)目實(shí)戰(zhàn):Python語言實(shí)現(xiàn)