《零基礎看得懂的C語言入門教程 》——(三)輕輕松松理解第一個C語言程序

一、學習目標

  1. 了解C語言代碼的一般結構
  2. 了解函數的概念
  3. 了解printf函數的使用方法
  4. 了解頭文件的概念
  5. 了解system函數的使用方法

目錄

C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。
第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那么難簡單開發帶你了解流程
第四篇:(四)語言的基本數據類型及變量
第五篇:(五)C語言的變量、常量及運算
第六篇:(六)輕輕松松了解C語言的邏輯運算
第七篇:(七)C語言的循環分分鐘上手
第八篇:(八)了解基本數組還不是那么簡單
第九篇:(九)C語言二維數組與循環嵌套
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數真的很簡單
第十二篇:(十二)原來結構體是這么回事
第十三篇:(十三)socket服務端編寫

C語言新手的100個報錯解法

推薦

我正在參與1024活動,歡迎大家點贊、收藏、評論我的干貨文章《一篇文帶你從0到1了解建站及完成CMS系統編寫》
歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
在這里插入圖片描述

二、簡單了解C語言程序的基本結構

在上一節學習中,復制了一段HelloWorld代碼并且運行了該程序。接下來通過上一節的代碼來學習一般情況下C語言代碼的結構組成。

2.1 了解C語言代碼編寫區域
如下圖,紫色框所示意的區域為工作區,我們編寫代碼在此區域進行。但對于初學者來說,此方式編寫太過自由,最適合初學者的方式為指定一局部區域,在該區域編寫基礎代碼。
在這里插入圖片描述

在上一節中,我們修改了 printf("")雙引號內的內容,從而實現了程序在運行時顯示內容的自定義。我們再查看這個printf("")所在的區域為int main(){} 代碼中花括號({ })內。該花括號內我們稱為main函數內的代碼內容。

在此我們出現了一個新的名詞“函數”,“函數”的概念接下來將會講解,現在我們拋開函數得知,printf 這個代碼,是編寫在一對花括號中的。那么我們在此規定,接下來寫程序將會在這一對花括號中編寫。

在以上代碼中,花括號內的代碼,每一句結束后都是用了一個分號(;)作為結束標志,分號在代碼中作用跟中文書寫文章一樣,表示這一句結束,在編寫代碼時一般情況下使用分號表示結束。表示結束還有很多不同的情況,我們將在之后的課程詳細說明。

注意:在編寫代碼時,所有的關鍵的符號標點都需要使用英文狀態下進行輸入。

三、了解函數的使用方法

在上一個小點中出現了“函數”這一陌生名詞。在編程中,一般函數并不所指數學中的函數,所指代的為一個功能,一個可以幫我們完成某個結果的方法。

3.1 了解函數的概念
在編程中,函數可理解為一種直接使用就可以完成某個任務的“工具”。函數可以自己去實現,在之后的課程將會說明。

函數我們可以使用一個例子很好的說明:在洗衣機未出現前,我們洗衣服一般可分為打水、放皂角之類的洗滌劑、敲打或搓洗、漂水洗凈、扭干;通過以上的步驟才可以完成衣服的洗凈。當洗衣機出現后,洗衣機自動的完成了打水、放皂角之類的洗滌劑、敲打或搓洗、漂水洗凈、扭干這些過程;當我們洗衣服時就不需要如此繁瑣的過程,只需要把衣服放進洗衣機中就可以完成該任務。

在C語言編程中函數也如此,函數表示一個方法或功能,當我們需要使用該功能時,可以通過書寫改函數的名稱,傳遞一些所需的內容,即可完成該任務。

3.2 了解printf函數的使用方法
在我們上一節中,修改了printf("")雙引號內的內容,程序運行時顯示了該內容。從運行結果得知,printf極有可能是用于程序在運行時顯示內容的關鍵代碼。如果你有這個想法,恭喜你,你具備了一些編寫程序的思維。printf("")的作用是在程序運行時,將圓括號中雙引號內的內容顯示出來,在編寫程序時,非特定字符情況下,你在雙引號內填入什么值則會輸出什么值。

printf是一個函數,功能是在程序運行時顯示一些值。我們填入的值稱為參數。一個函數使用的一般方式為函數名后接一個圓括號,如需要傳入字符串值作為參數,那么在傳遞字符串的時候使用雙引號引起來作為傳入即可。(之后的課程會學習多重類型作為參數的不同表現形式)

在C語言中,直接可以使用的函數稱為系統函數,如printf,這些系統函數等同于一些工具,分類存放于一些“工具箱”中。

3.3 了解頭文件的概念
在3.2節末,我們得知系統函數分類存放于一些“工具箱”中,這些工具箱則是頭文件。如下圖,頭文件則是代碼中最頭部位置的那兩行代碼。
在這里插入圖片描述

如上圖紫色框示意位置則是頭文件的引入代碼。如何引入?接下來告訴你。
引入代碼如下:

#include<stdio.h>
#include<stdlib.h>

以上代碼中,stdio與stdlib為頭文件名稱,其中stdio.h的.h為該文件的后綴,h表示這個文件為頭文件。我們可以理解這個.h為當前文件的標志,表示類型。
#include<> 表示引入哪個頭文件,該代碼的作用就好比一只手,你告訴它拿什么工具箱,它就去幫你去指定地點將工具箱拿來。那么這個指定地點在哪呢?系統默認這個地點為devc軟件安裝位置下的include目錄。
在這里插入圖片描述
這就是環境的作用,如果你編寫C語言程序,沒有所支持的庫那么使用printf函數將沒有任何作用,除非你自己手動實現整個過程,這個過程對于新手來說是非常繁瑣且模糊的。
當然,我們在引入頭文件時需要注意,隨意引入是沒用的,假設我想引入一個名為qqq的頭文件,#include去當前目錄尋找該文件,發現找不到,這個時候將會出現錯誤提示。
在這里插入圖片描述
并且會提示報錯,告知你在該目錄下并沒有找到該文件。
在這里插入圖片描述

那么問題來了,現在我們回顧為什么要引入頭文件?
在之前有說,函數是存在于頭文件中,那么就存在一個邏輯“使用一個函數則需要引入該函數”。我們使用的函數printf存在于stdio頭文件中,所以在頭部我們把工具使用include將其引入,引入后printf才可以使用。不信?那我們把頭文件第一個引入刪除,隨后點擊編譯程序看看是否會報錯。編譯按鈕如下:
在這里插入圖片描述

刪除后代碼如下:

#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

編譯后結果:
在這里插入圖片描述

在下方提示窗口中提示了一個警告Warning,表示當前系統函數printf直接使用不當。(因為直接翻譯過來會有一些專業術語,所以我換了一種表達)由于現在C語言的標準在隨著時間改變,所以導致了出現警告,在老一點的標準中,會直接出現錯誤,就不是現在的警告了。為了良好的習慣我們把引入#include<stdio.h>加上:

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

再次編譯則沒出現警告。
在這里插入圖片描述

3.4 了解system函數的使用方法
上一節中了解頭部頭文件的引入作用和方法,接下來再了解另外一函數system。system函數作用為執行系統命令。這個系統指的是DOS系統,簡單的理解就是程序運行時出現的小黑框。

在此system為何要調用這個DOS小黑框的命令呢?這個命令又是什么?有什么作用?
我們首先查看在代碼中的system為system ("pause");,這一句代碼的作用是:當程序運行到此處時停止,等待按下一個鍵繼續運行。那為什么要這樣做呢?因為不加這一段代碼我們所邊寫的程序就會一閃而過。

我們可以做個試驗,刪除system這一行代碼,最終代碼如下:

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");
}

隨后點擊編譯運行程序按鈕。
在這里插入圖片描述
隨后出現黑框框,并且沒有出現一閃而過的現象。
在這里插入圖片描述
哎呀,是不是我翻車了呢?其實并沒有。
在這里會停止使因為我們通過了devc這個軟件進行程序運行,這時會自動的添加停止。那我不從devc軟件運行該程序會怎樣?我們在上一節學過,當編譯運行后,將會生成一個可執行程序,雙擊可以直接運行。
在這里插入圖片描述
我們去之前設置的文件保存處,找到該文件雙擊運行。這個時候就會出現一閃而過的現象。所以同學們,還是得添加停止代碼。

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

接下來解釋一下 system ("");函數的用法。system函數并不是只有暫停功能,它可以使用DOS系統的命令,但是需要傳遞該命令。由于學習DOS系統命令會增加沒必要的學習時間,我們是以C語言學習為主,在此只需要知道傳入一個pause就會執行暫停即可。暫停命令是一串字符,稱為字符串。一個函數不需要傳入參數的形式為函數名加圓括號system(),但在此需要傳入一個命令pause實現暫停,則編寫為system ("pause"),代碼需要使用分號表示結束,則最終寫成system ("pause");。注意標點符號一定是英文輸入法下輸入。

四、main

在helloWord程序中還有void main 未解釋。因為內容涉及過多其它內容,在此并不做詳細解釋,只需要了解main是C語言程序的入口。

我們編寫一個程序,必須要給予計算機一個最起始的入口給計算機,告訴它我們的程序從哪開始,這就是main。就好比學校一樣,有一個大門,你拿著錄取通知書看見一個大門,知道這個是入學校的入口。計算機也一樣,這個main是我們在C語言中規定的一個入口。

IT原創動漫、學習資料、原創教程請關注公眾號。
在這里插入圖片描述

五、總結

通過以上描述與講解,我們了解了以下幾點內容:

  1. 初學者開始寫代碼先從main之后的花括號內編寫代碼
  2. 了解了函數的概念為一個功能的實現
  3. 了解了printf函數的使用方法,在函數內傳入值即可在程序運行時顯示
  4. 知道了頭文件的位置及函數存放于頭文件內
  5. 了解了stystem函數是調用DOS系統命令的函數
  6. 了解了main的作用是表示代碼入口

我的博客即將同步至騰訊云+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=luezrrk9istg

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287830.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hdu_1728_逃離迷宮(bfs)

題目連接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1728 題意&#xff1a;走迷宮&#xff0c;找最小的拐角 題解&#xff1a;對BFS有了新的理解&#xff0c;DFS剪枝應該也能過&#xff0c;用BFS就要以拐角作為增量來搜&#xff0c;即以當前點為坐標&#xff0c;4…

把文件放在SD卡

2019獨角獸企業重金招聘Python工程師標準>>> 在程序中訪問SDCard&#xff0c;你需要申請訪問SDCard的權限。 在AndroidManifest.xml中加入訪問SDCard的權限如下: <!-- 在SDCard中創建與刪除文件權限--> <uses-permissionandroid:name"android.permiss…

python分層聚類集群合并_24、python分層聚類案例(scipy方法)

目錄1、分層聚類算法2、方法3、分析步驟4、案例1、分層聚類算法層次聚類算法又稱為樹聚類算法&#xff0c;它根據數據之間的距離&#xff0c;透過一種層次架構方式&#xff0c;反復將數據進行聚合&#xff0c;創建一個層次以分解給定的數據集。2、方法01 聚類方法linkagescipy.…

【經典回放】多種語言系列數據結構算法:數組

數組如同前面學過的順序表,一次性申請一片地址連續的存儲空間,我們還知道,計算機中數組是以一維的形式存儲的,因為計算機的內存的一維的。在知道了多維數據的計算機存儲方式后,我們還要知道構造一個多維數據的方法,并構造ADT,具體做法如下所示: 內容和步驟: 1、C語言中…

stl中Priority Queues(優先隊列)的基本用法

博客搬家啦 blog.ma6174.comstl中Priority Queues(優先隊列)的基本用法 C優先隊列類似隊列&#xff0c; 但是在這個數據結構中的元素按照一定的斷言排列有序。 C Priority Queues(優先隊列) empty 語法: bool empty(); empty()函數返回真(true)如果優先隊列為空&#xff0c;否則…

如何用 windbg 導出 C# 中的 string 內容?

咨詢區 driis我在用 windbg 調試一個生產上的 程序卡死 故障 &#xff0c;在線程棧上有一個 string 類型的參數相當大&#xff0c;我用 !dumpobj 命令不能正常顯示內容&#xff0c;參考如下&#xff1a;0:036> !do 00000001b30d8668 Name: System.String MethodTable: 00000…

《零基礎看得懂的C語言入門教程 》——(四)C語言的基本數據類型及變量

一、學習目標 了解C語言的基本數據類型了解變量的基本概念了解變量的使用方法了解了變量的命名方法了解格式占位符了解變量的輸出 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離…

android一句話搞定圖片加載

http://square.github.io/picasso/ Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); gradle中添加 compile com.squareup.picasso:picasso:2.5.2 轉載于:https://www.cnblogs.com/rwxwsblog/p/5467874.html

轉HTML+CSS總結/深入理解CSS盒子模型

原文地址&#xff1a;http://www.chinaz.com/design/2010/1229/151993.shtml 前言&#xff1a;前陣子在做一個項目時&#xff0c;在頁面布局方面遇到了一點小問題&#xff0c;于是上stackoverflow上求助。ifaou在幫助我解決我問題的同時&#xff0c;還推薦我閱讀一篇有關CSS盒子…

主成分分析步驟_多元分析(1)--主成分分析

主成分分析主成分分析&#xff08;PCA&#xff09;是數據降維的一種常見方法&#xff0c;其它常見的方法還有因子分析&#xff08;FA&#xff09;,獨立成分分析&#xff0c;在進行大數據處理時&#xff0c;因為數據有很多特征&#xff0c;維數過高&#xff0c;不容易進行處理且…

ArcGIS實驗教程——實驗十九:網絡分析(最短路徑實現)

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗描述 網絡分析模塊用于實現基于網絡數據集的網絡分析功能,包括路徑分析、服務區分析、最近設施點分析、OD成本矩陣分析、多路徑配送分析、位置分配分析和高級網絡的管理與創建等。 網絡…

設計模式之策略模式和狀態模式

1 策略模式 我們創建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執行算法&#xff0c; 我們可以簡單理解為更加不同的策略對象&#xff0c;執行不同策略方法。 2 類圖 3 代碼實現 1&#xff09;接口&#xff1a;Strat…

期待已久的Java 9 今日發布

人們期待已久的Java SE 9.0將在2017年9月21日發布&#xff0c;它會帶來一些重要的變化。\\JDK 9的核心變化就是引入了一種新的Java編程組件&#xff0c;也就是模塊&#xff0c;按照Oracle的說法&#xff0c;它是一個可命名的、自描述的代碼和數據集合。模塊技術的核心目標是減少…

AspNetCore7.0源碼解讀之UseMiddleware

前言本文編寫時源碼參考github倉庫主分支。aspnetcore提供了Use方法供開發者自定義中間件&#xff0c;該方法接收一個委托對象&#xff0c;該委托接收一個RequestDelegate對象&#xff0c;并返回一個RequestDelegate對象&#xff0c;方法定義如下&#xff1a;IApplicationBuild…

邊工作邊刷題:70天一遍leetcode: day 11-3

Single Number I/II II的python解是網上抄的&#xff0c;其實可以AC&#xff0c;但是python不會像c/java那樣自動overflow&#xff0c;而是轉化成long。所以如果有負數的情況會得到一個巨大的正數解&#xff0c;比如 Input:[-2,-2,1,1,-3,1,-3,-3,-4,-2] Output:4294967292 Exp…

《零基礎看得懂的C語言入門教程 》——(五)C語言的變量、常量及運算

一、學習目標 了解C語言變量的其它創建方式了解C語言常量了解C語言的運算符 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xff1a;&#xff08;二&#xff…

實戰使用Axure設計App,使用WebStorm開發(4) – 實現頁面UI

系列文章 實戰使用Axure設計App,使用WebStorm開發(1) – 用Axure描述需求 實戰使用Axure設計App,使用WebStorm開發(2) – 創建 Ionic 項目 實戰使用Axure設計App,使用WebStorm開發(3) – 構建頁面架構 實戰使用Axure設計App,使用WebStorm開發(4) – 實現頁面UI 實戰使用Axu…

ArcGIS實驗教程——實驗二十:ArcGIS數字高程模型DEM建立

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗描述 本實驗講述DEM的創建方法和過程。DEM的采集方法有四種:地面測量、攝影測量、空間站、地形圖數字化。 二、實驗內容 1、插值法DEM建立 2、創建TIN 3、TIN轉柵格 4、生成等高線 …

思科asa5515端口映射_Cisco ASA端口映射

SQL基礎--同義詞同義詞的概念: 同義詞是Oracle對象的別名,使用同義詞訪問相同的對象 可以為表.視圖.存儲過程.函數或另一同義詞等對象創建同義詞 方便訪問其它用戶的對象,隱藏了對象的身份 縮短對象名字的長度 同義 ...訪問本地json文件因跨域導致的問題我使用jquery的getJSON的…

英文詞頻統計預備,組合數據類型練習

實例: 下載一首英文的歌詞或文章&#xff0c;將所有,.&#xff1f;&#xff01;等替換為空格&#xff0c;將所有大寫轉換為小寫&#xff0c;統計某幾個單詞出現的次數&#xff0c;分隔出一個一個的單詞。2.列表實例&#xff1a;由字符串創建一個作業評分列表&#xff0c;做增刪…