程序員大神教你學(xué)習(xí)C語言/C++編程:如何使用編譯器和程序

C語言是面向過程的,而C++是面向?qū)ο蟮?/p>

C和C++的區(qū)別:

C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進(jìn)行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。

C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設(shè)計的基礎(chǔ),好的設(shè)計如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計”也能寫出非常好的東西。

第一章:編譯器和程序

很多小伙伴都老是會碰到疑問,其實還是基礎(chǔ)沒打扎實,這些題如果你不看答案你能知道多少呢?如果還有很多不知道就證明基礎(chǔ)沒打扎實,如果你還在入門糾結(jié),如果你還在苦惱怎么入門!小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

在學(xué)編程之前,我要提到兩個問題,我們都說計算機很強大,它究竟強大到什么地步了,比如說飛天遁地它會嗎?你見過遙控飛機嗎,有人說那是小玩意,那無人駕駛飛機呢?再比如說它能造原子彈嗎?仿真實驗室知道不,1996年9月10日的聯(lián)合國大會,以158票贊成、3票反對通過了《全面禁止核試驗條約》,該條約的通過只能說明核競賽在實爆方面的結(jié)束,計算機模擬仿真卻是一種有效的核試驗方式。第一個我要問大家的問題是,計算機不能做什么?這個問題需要大家以后去發(fā)現(xiàn);第二個問題是為什么學(xué)計算機要學(xué)編程?首先問問自己為什么要學(xué)計算機,想開發(fā)軟件,想當(dāng)黑客,或做一個游戲,或做一個網(wǎng)站,哪樣是不需要編程的,這是永遠(yuǎn)都不能回避的一個問題,編程才是計算機的精髓。

我們說語言是表達(dá)自己思想的工具,但是語言又分好多種,有漢語、英語、西班牙語、緬甸語...如果一個只懂英語和只懂緬甸語的兩個人碰頭了,那他們改怎么交流呢,這時候就需要翻譯了,計算機底層只能識別0和1組成的代碼,對于計算機來講它的語言就是0、1代碼(又叫機器語言),假設(shè)我們學(xué)的是C語言,那要想讓我們的C語言能夠讓計算機理解,這時候我們也需要一個翻譯,這個翻譯就是C編譯器,當(dāng)然還有其他很多語言的編譯器(比如C++編譯器、Delphi編譯器),這里涉及到3個問題我要講清楚,

1是我們能夠把計算機識別的0、1代碼轉(zhuǎn)換成其他語言嗎(比如C語言)?可以,但是這個難度比較大,需要通過大量的學(xué)習(xí),不適合初學(xué)者學(xué)習(xí),通常我們把這個過程叫做逆向。

2是我們的編譯器都是把計算機語言翻譯成機器語言嗎?不是,有些會翻譯成一些中間語言,比如java的編譯器會把java代碼翻譯成Java虛擬機能夠識別的代碼,然后由Java虛擬機去把這個代碼轉(zhuǎn)換成機器語言來執(zhí)行,所以如果不管中間過程,最終所有的代碼都會被翻譯成計算機能夠識別的機器語言。

3是我們?yōu)槭裁床皇褂媚軌虬盐覀兊臐h語轉(zhuǎn)換成機器語言的編譯器?因為漢語和其他我們?nèi)祟愂褂玫恼Z言一樣,它們是有歧義的,同樣的一句話可能有兩種或多種意思,計算機不能識別歧義,所以必須約定一套計算機能夠完全識別的語言,所以就算計算機是美國人發(fā)明的,它們也并沒有發(fā)明出能夠直接使用英語來編寫程序的編譯器(需要說明的是易語言這樣的并不屬于真正的漢語編程語言)。

所以從開始學(xué)習(xí)C語言時,我們需要的僅僅是一個翻譯,我在下面會給出三個編譯器鏈接:

C-Free、Dev-C++、VC6.0,當(dāng)然我電腦上還有VS2013和VS2017。

盡管很不情愿,但為了防止部分同學(xué)不會安裝軟件,我還是演示下怎么安裝編譯器(以C-Free為例),我是在虛擬機里面演示的,雖然是虛擬機,但其實是在自己電腦上虛擬出來的一臺電腦,和真機沒有任何區(qū)別。下載編譯器完成后,右鍵此文件,選擇解壓到CFree5pro文件夾

打開CFree5pro文件夾會發(fā)現(xiàn)這樣兩個文件,c-free5_0_pro這個是安裝程序,注冊碼是待會注冊要用的

點擊c-free5_0_pro出現(xiàn)安裝界面后,直接點下一步

選擇“我同意此協(xié)議”,繼續(xù)點下一步

接下來出現(xiàn)程序安裝目錄,這個我一般是選擇D:Program Files,但是這里為了方便就不更改了,繼續(xù)點下一步

然后再點擊幾次下一步,來到安裝的最后界面,這里點安裝就開始安裝編譯器了。

等安裝的綠條走完后,來到了是否運行C-Free編譯器,直接點完成編譯器就跑起來了。

先把這個新建工程的對話框點關(guān)閉了,因為C-Free不是免費軟件,所以這時候我們用的還只是試用版的,這時候我們選擇編譯器上面一排的“幫助”,在彈出的下拉列表中選擇“注冊”。

把我們之前的那個注冊碼文件打開,把這里面的三項用戶名、郵箱和注冊碼分別拷貝到C-Free的三個輸入框里面去,點擊確定就可以了,這時候它會要求你重啟編譯器,點擊之后再重新點擊桌面的C-free編譯器就ok了。

然后接下來開始我們的第一個程序,選擇C-Free上面的工程->新建,windows下的編譯器都差不多,反正一般都是在文件或者工程里面選擇新建一個工程

在彈出框中要說明三項,一個是要新建的工程類型,我們這里選擇“控制臺程序”就好(這種程序就是黑框框界面的那種,后面還有窗口程序、鏈接庫,我發(fā)現(xiàn)C-Free后面的GUI toolkits里面還有QT項目)。工程名稱是你的程序的名稱,我這里寫的是HelloWorld1,第三項就是保持位置,我這里是默認(rèn)保存在桌面,我就不管了,這三項弄好后就直接點確定了

小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

然后接下來會選擇控制臺程序的類型,我們選第三個“Hello,World程序”(因為這樣編譯器會自動幫我們生成HelloWorld的代碼,因為我們還沒有講語法,就先讓編譯器自己幫我們生成一個好了),點下一步

然后會彈出語言選擇,我們是默認(rèn)的C語言就行了,點下一步

然后會彈出一個構(gòu)建配置,這個意思就是C-Free默認(rèn)內(nèi)嵌的編譯器(MinGW),所以不要認(rèn)為寫出C-Free這樣的編譯器就一定有多厲害了,其實只是內(nèi)嵌了一個MinGW編譯器啦,以后如果大家想學(xué)的話,我會教大家怎么從零開始寫編譯器,不需要依靠別人內(nèi)嵌編譯器。這里直接點完成就行了。

接下來請看編譯器的右邊會出現(xiàn)一個文件列表,這里面有三個文件夾Source Files、Header Files、Other Files以及一個main.c文件,這就是編譯器自動為我們生成的文件,如果我們之前在48那個圖里面選擇空的程序就不會有一個文件了。點擊main.c文件打開看看

我們在這里就可以看到main.c里面寫的C源代碼了。

接下來點擊構(gòu)建->運行,這里直接點運行其實編譯器是執(zhí)行了三步操作,第一步是編譯,就是把main.c這個文件轉(zhuǎn)換成main.o文件,第二步是鏈接,C-Free編譯器這里叫構(gòu)建,就是把main.o文件可一些庫文件鏈接成HelloWorld1.exe文件,第三步才是運行,效果就相當(dāng)于我們點擊了HelloWorld1.exe這個文件一樣,我們有時候可能并不需要直接點構(gòu)建->運行把這三步全做完了,比如我們寫一個病毒的時候,我們只需要執(zhí)行到第二步就可以了,因為第三步再執(zhí)行的話我們自己的電腦就要中招了。這里直接點運行就是為了方便啦

點擊運行之后就是我們程序運行的結(jié)果了

我們可以進(jìn)入我們在47樓填寫的保持位置,我填的是桌面,我在桌面就能找到文件名為HelloWorld1的文件夾,mingW5文件夾里面有兩個文件main.o和HelloWorld1.exe,這兩個文件就是編譯器編譯文件的第一步和第二步分別生成的文件,點擊這里的HelloWorld1.exe也會出來同樣的效果

Dev-C++版本:

其實它們新建項目都是類似的過程,具體步驟我就不寫了,我就貼幾張圖出來了

這里需要新建一個文件夾,不如C-Free那么方便,我新建的文件夾就叫HelloWorld2了

然后點進(jìn)去HelloWorld2再點保存,dev-C++就會把HelloWorld2.dev這個文件放到HelloWorld2文件夾里面去

這里同樣可以看到main.c源代碼和左邊的文件列表(c-free是在右邊),不過我們點擊運行->運行后出來的黑框里面并沒有"Hello"相關(guān)的信息,因為編譯器并沒有幫我們生成。

這里我們就需要在main.c文件里添加printf("hello,world!");這一行,它的意思就是打印出hello,world!

添加這行代碼后再點擊運行->編譯運行就能出來結(jié)果了。

小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

這些是C/C++能做的

服務(wù)器開發(fā)工程師、人工智能、云計算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺、嵌入式工程師、流媒體服務(wù)器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務(wù)器、分布式系統(tǒng)、游戲輔助等

VC6.0的我就先不講了,其他都差不多,我的建議是如果你電腦上能裝VC6.0的話就盡量裝它,畢竟它是有工業(yè)強度的編譯器,而且網(wǎng)上許多源碼都是在VC編譯器的平臺上開發(fā)的(當(dāng)然如果你能安裝更高版本的VC編譯器當(dāng)然更高,我電腦上就有vs2013和vs2017),如果你VC6.0裝不上那就裝c-free吧,也比較方便,dev-C++不算很方便。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容