《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序
一、學(xué)習(xí)目標(biāo)
目錄
C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學(xué)習(xí)C語言。
第一篇:(一)脫離學(xué)習(xí)誤區(qū)
第二篇:(二)C語言沒那么難簡(jiǎn)單開發(fā)帶你了解流程
第四篇:(四)語言的基本數(shù)據(jù)類型及變量
第五篇:(五)C語言的變量、常量及運(yùn)算
第六篇:(六)輕輕松松了解C語言的邏輯運(yùn)算
第七篇:(七)C語言的循環(huán)分分鐘上手
第八篇:(八)了解基本數(shù)組還不是那么簡(jiǎn)單
第九篇:(九)C語言二維數(shù)組與循環(huán)嵌套
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數(shù)真的很簡(jiǎn)單
第十二篇:(十二)原來結(jié)構(gòu)體是這么回事
第十三篇:(十三)socket服務(wù)端編寫
C語言新手的100個(gè)報(bào)錯(cuò)解法
推薦
我正在參與1024活動(dòng),歡迎大家點(diǎn)贊、收藏、評(píng)論我的干貨文章《一篇文帶你從0到1了解建站及完成CMS系統(tǒng)編寫》
歡迎大家關(guān)注公眾號(hào),公眾號(hào)每滿1024及1024倍數(shù)則會(huì)抽獎(jiǎng)贈(zèng)送機(jī)械鍵盤一份+IT書籍2份喲~
二、簡(jiǎn)單了解C語言程序的基本結(jié)構(gòu)
在上一節(jié)學(xué)習(xí)中,復(fù)制了一段HelloWorld代碼并且運(yùn)行了該程序。接下來通過上一節(jié)的代碼來學(xué)習(xí)一般情況下C語言代碼的結(jié)構(gòu)組成。
2.1 了解C語言代碼編寫區(qū)域
如下圖,紫色框所示意的區(qū)域?yàn)楣ぷ鲄^(qū),我們編寫代碼在此區(qū)域進(jìn)行。但對(duì)于初學(xué)者來說,此方式編寫太過自由,最適合初學(xué)者的方式為指定一局部區(qū)域,在該區(qū)域編寫基礎(chǔ)代碼。
在上一節(jié)中,我們修改了 printf("")雙引號(hào)內(nèi)的內(nèi)容,從而實(shí)現(xiàn)了程序在運(yùn)行時(shí)顯示內(nèi)容的自定義。我們?cè)俨榭催@個(gè)printf("")所在的區(qū)域?yàn)閕nt main(){} 代碼中花括號(hào)({ })內(nèi)。該花括號(hào)內(nèi)我們稱為main函數(shù)內(nèi)的代碼內(nèi)容。
在此我們出現(xiàn)了一個(gè)新的名詞“函數(shù)”,“函數(shù)”的概念接下來將會(huì)講解,現(xiàn)在我們拋開函數(shù)得知,printf 這個(gè)代碼,是編寫在一對(duì)花括號(hào)中的。那么我們?cè)诖艘?guī)定,接下來寫程序?qū)?huì)在這一對(duì)花括號(hào)中編寫。
在以上代碼中,花括號(hào)內(nèi)的代碼,每一句結(jié)束后都是用了一個(gè)分號(hào)(;)作為結(jié)束標(biāo)志,分號(hào)在代碼中作用跟中文書寫文章一樣,表示這一句結(jié)束,在編寫代碼時(shí)一般情況下使用分號(hào)表示結(jié)束。表示結(jié)束還有很多不同的情況,我們將在之后的課程詳細(xì)說明。
注意:在編寫代碼時(shí),所有的關(guān)鍵的符號(hào)標(biāo)點(diǎn)都需要使用英文狀態(tài)下進(jìn)行輸入。
三、了解函數(shù)的使用方法
在上一個(gè)小點(diǎn)中出現(xiàn)了“函數(shù)”這一陌生名詞。在編程中,一般函數(shù)并不所指數(shù)學(xué)中的函數(shù),所指代的為一個(gè)功能,一個(gè)可以幫我們完成某個(gè)結(jié)果的方法。
3.1 了解函數(shù)的概念
在編程中,函數(shù)可理解為一種直接使用就可以完成某個(gè)任務(wù)的“工具”。函數(shù)可以自己去實(shí)現(xiàn),在之后的課程將會(huì)說明。
函數(shù)我們可以使用一個(gè)例子很好的說明:在洗衣機(jī)未出現(xiàn)前,我們洗衣服一般可分為打水、放皂角之類的洗滌劑、敲打或搓洗、漂水洗凈、扭干;通過以上的步驟才可以完成衣服的洗凈。當(dāng)洗衣機(jī)出現(xiàn)后,洗衣機(jī)自動(dòng)的完成了打水、放皂角之類的洗滌劑、敲打或搓洗、漂水洗凈、扭干這些過程;當(dāng)我們洗衣服時(shí)就不需要如此繁瑣的過程,只需要把衣服放進(jìn)洗衣機(jī)中就可以完成該任務(wù)。
在C語言編程中函數(shù)也如此,函數(shù)表示一個(gè)方法或功能,當(dāng)我們需要使用該功能時(shí),可以通過書寫改函數(shù)的名稱,傳遞一些所需的內(nèi)容,即可完成該任務(wù)。
3.2 了解printf函數(shù)的使用方法
在我們上一節(jié)中,修改了printf("")雙引號(hào)內(nèi)的內(nèi)容,程序運(yùn)行時(shí)顯示了該內(nèi)容。從運(yùn)行結(jié)果得知,printf極有可能是用于程序在運(yùn)行時(shí)顯示內(nèi)容的關(guān)鍵代碼。如果你有這個(gè)想法,恭喜你,你具備了一些編寫程序的思維。printf("")的作用是在程序運(yùn)行時(shí),將圓括號(hào)中雙引號(hào)內(nèi)的內(nèi)容顯示出來,在編寫程序時(shí),非特定字符情況下,你在雙引號(hào)內(nèi)填入什么值則會(huì)輸出什么值。
printf是一個(gè)函數(shù),功能是在程序運(yùn)行時(shí)顯示一些值。我們填入的值稱為參數(shù)。一個(gè)函數(shù)使用的一般方式為函數(shù)名后接一個(gè)圓括號(hào),如需要傳入字符串值作為參數(shù),那么在傳遞字符串的時(shí)候使用雙引號(hào)引起來作為傳入即可。(之后的課程會(huì)學(xué)習(xí)多重類型作為參數(shù)的不同表現(xiàn)形式)
在C語言中,直接可以使用的函數(shù)稱為系統(tǒng)函數(shù),如printf,這些系統(tǒng)函數(shù)等同于一些工具,分類存放于一些“工具箱”中。
3.3 了解頭文件的概念
在3.2節(jié)末,我們得知系統(tǒng)函數(shù)分類存放于一些“工具箱”中,這些工具箱則是頭文件。如下圖,頭文件則是代碼中最頭部位置的那兩行代碼。
如上圖紫色框示意位置則是頭文件的引入代碼。如何引入?接下來告訴你。
引入代碼如下:
以上代碼中,stdio與stdlib為頭文件名稱,其中stdio.h的.h為該文件的后綴,h表示這個(gè)文件為頭文件。我們可以理解這個(gè).h為當(dāng)前文件的標(biāo)志,表示類型。
#include<> 表示引入哪個(gè)頭文件,該代碼的作用就好比一只手,你告訴它拿什么工具箱,它就去幫你去指定地點(diǎn)將工具箱拿來。那么這個(gè)指定地點(diǎn)在哪呢?系統(tǒng)默認(rèn)這個(gè)地點(diǎn)為devc軟件安裝位置下的include目錄。
這就是環(huán)境的作用,如果你編寫C語言程序,沒有所支持的庫那么使用printf函數(shù)將沒有任何作用,除非你自己手動(dòng)實(shí)現(xiàn)整個(gè)過程,這個(gè)過程對(duì)于新手來說是非常繁瑣且模糊的。
當(dāng)然,我們?cè)谝腩^文件時(shí)需要注意,隨意引入是沒用的,假設(shè)我想引入一個(gè)名為qqq的頭文件,#include去當(dāng)前目錄尋找該文件,發(fā)現(xiàn)找不到,這個(gè)時(shí)候?qū)?huì)出現(xiàn)錯(cuò)誤提示。
并且會(huì)提示報(bào)錯(cuò),告知你在該目錄下并沒有找到該文件。
那么問題來了,現(xiàn)在我們回顧為什么要引入頭文件?
在之前有說,函數(shù)是存在于頭文件中,那么就存在一個(gè)邏輯“使用一個(gè)函數(shù)則需要引入該函數(shù)”。我們使用的函數(shù)printf存在于stdio頭文件中,所以在頭部我們把工具使用include將其引入,引入后printf才可以使用。不信?那我們把頭文件第一個(gè)引入刪除,隨后點(diǎn)擊編譯程序看看是否會(huì)報(bào)錯(cuò)。編譯按鈕如下:
刪除后代碼如下:
#include<stdlib.h> void main(){printf("你好 世界!");system ("pause"); }編譯后結(jié)果:
在下方提示窗口中提示了一個(gè)警告Warning,表示當(dāng)前系統(tǒng)函數(shù)printf直接使用不當(dāng)。(因?yàn)橹苯臃g過來會(huì)有一些專業(yè)術(shù)語,所以我換了一種表達(dá))由于現(xiàn)在C語言的標(biāo)準(zhǔn)在隨著時(shí)間改變,所以導(dǎo)致了出現(xiàn)警告,在老一點(diǎn)的標(biāo)準(zhǔn)中,會(huì)直接出現(xiàn)錯(cuò)誤,就不是現(xiàn)在的警告了。為了良好的習(xí)慣我們把引入#include<stdio.h>加上:
#include<stdio.h> #include<stdlib.h> void main(){printf("你好 世界!");system ("pause"); }再次編譯則沒出現(xiàn)警告。
3.4 了解system函數(shù)的使用方法
上一節(jié)中了解頭部頭文件的引入作用和方法,接下來再了解另外一函數(shù)system。system函數(shù)作用為執(zhí)行系統(tǒng)命令。這個(gè)系統(tǒng)指的是DOS系統(tǒng),簡(jiǎn)單的理解就是程序運(yùn)行時(shí)出現(xiàn)的小黑框。
在此system為何要調(diào)用這個(gè)DOS小黑框的命令呢?這個(gè)命令又是什么?有什么作用?
我們首先查看在代碼中的system為system ("pause");,這一句代碼的作用是:當(dāng)程序運(yùn)行到此處時(shí)停止,等待按下一個(gè)鍵繼續(xù)運(yùn)行。那為什么要這樣做呢?因?yàn)椴患舆@一段代碼我們所邊寫的程序就會(huì)一閃而過。
我們可以做個(gè)試驗(yàn),刪除system這一行代碼,最終代碼如下:
#include<stdio.h> #include<stdlib.h> void main(){printf("你好 世界!"); }隨后點(diǎn)擊編譯運(yùn)行程序按鈕。
隨后出現(xiàn)黑框框,并且沒有出現(xiàn)一閃而過的現(xiàn)象。
哎呀,是不是我翻車了呢?其實(shí)并沒有。
在這里會(huì)停止使因?yàn)槲覀兺ㄟ^了devc這個(gè)軟件進(jìn)行程序運(yùn)行,這時(shí)會(huì)自動(dòng)的添加停止。那我不從devc軟件運(yùn)行該程序會(huì)怎樣?我們?cè)谏弦还?jié)學(xué)過,當(dāng)編譯運(yùn)行后,將會(huì)生成一個(gè)可執(zhí)行程序,雙擊可以直接運(yùn)行。
我們?nèi)ブ霸O(shè)置的文件保存處,找到該文件雙擊運(yùn)行。這個(gè)時(shí)候就會(huì)出現(xiàn)一閃而過的現(xiàn)象。所以同學(xué)們,還是得添加停止代碼。
接下來解釋一下 system ("");函數(shù)的用法。system函數(shù)并不是只有暫停功能,它可以使用DOS系統(tǒng)的命令,但是需要傳遞該命令。由于學(xué)習(xí)DOS系統(tǒng)命令會(huì)增加沒必要的學(xué)習(xí)時(shí)間,我們是以C語言學(xué)習(xí)為主,在此只需要知道傳入一個(gè)pause就會(huì)執(zhí)行暫停即可。暫停命令是一串字符,稱為字符串。一個(gè)函數(shù)不需要傳入?yún)?shù)的形式為函數(shù)名加圓括號(hào)system(),但在此需要傳入一個(gè)命令pause實(shí)現(xiàn)暫停,則編寫為system ("pause"),代碼需要使用分號(hào)表示結(jié)束,則最終寫成system ("pause");。注意標(biāo)點(diǎn)符號(hào)一定是英文輸入法下輸入。
四、main
在helloWord程序中還有void main 未解釋。因?yàn)閮?nèi)容涉及過多其它內(nèi)容,在此并不做詳細(xì)解釋,只需要了解main是C語言程序的入口。
我們編寫一個(gè)程序,必須要給予計(jì)算機(jī)一個(gè)最起始的入口給計(jì)算機(jī),告訴它我們的程序從哪開始,這就是main。就好比學(xué)校一樣,有一個(gè)大門,你拿著錄取通知書看見一個(gè)大門,知道這個(gè)是入學(xué)校的入口。計(jì)算機(jī)也一樣,這個(gè)main是我們?cè)贑語言中規(guī)定的一個(gè)入口。
IT原創(chuàng)動(dòng)漫、學(xué)習(xí)資料、原創(chuàng)教程請(qǐng)關(guān)注公眾號(hào)。
五、總結(jié)
通過以上描述與講解,我們了解了以下幾點(diǎn)內(nèi)容:
我的博客即將同步至騰訊云+社區(qū),邀請(qǐng)大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=luezrrk9istg
總結(jié)
以上是生活随笔為你收集整理的《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《零基础看得懂的C语言入门教程 》——(
- 下一篇: 《零基础看得懂的C语言入门教程 》——(