目錄
1 程序的作用
2 新建項目及編譯運行
2.1 新建項目
2.2?HelloWorld 程序說明
2.3?printf 打印輸出
2.4?注釋
3 程序的編譯過程及項目位置
4 斷點及調試窗口設置
5 學習C語言后的境界
1 程序的作用
如下圖所示,我們編寫了一個可以做加法的程序,我們給程序輸入 1 和 2,那么程序輸出結果 3,因此程序的作用是完成某種計算。
2 新建項目及編譯運行
2.1 新建項目
2.2?HelloWorld 程序說明
新建項目后默認會有一個main.c代碼,如下圖所示:
#include <stdio.h> // 引入標準輸入輸出頭文件,以便使用printf函數 int main() { // 主函數,程序的入口點 // 調用printf函數,在屏幕上打印出"Hello, World!\n" // \n 是一個轉義字符,表示新的一行 printf("Hello, World!\n"); // main函數返回0,表示程序正常結束 return 0;
}
程序說明:
- main是主函數名,int是函數返回值類型。
- 每個C程序有且只能有一個主函數main,程序從main函數開始執行。
- 花括號{}是函數開始和結束的標志,不可省略。
- ?每個C語句均以半角分號結束。
2.3?printf 打印輸出
使用標準庫函數時應在程序開頭一行書寫如下內容:
#include <stdio.h> //printf函數需要使用該頭文件
printf函數起打印輸出的作用,它將雙引號中的字符串 Hello, World! 打印到屏幕上。
2.4?注釋
兩個斜杠“//”后面的內容為代碼注釋,程序編譯時不會編譯到程序中。
3 程序的編譯過程及項目位置
程序的編譯過程如下圖所示。首先編寫源程序main.c。編寫完畢后,通過編譯器進行編譯,main.c經過編譯后,得到可執行文件(windows下是exe,Mac和Linux下是不帶后綴的,統稱為可執行文件),可執行文件中均是0/1類型的機器碼,即CPU能夠識別的微指令(英特爾的機器指令),CPU才能夠去執行。
如下圖所示,右鍵單擊“項目名”,選擇打開,選擇Explorer:
就可以看到如下界面,就是我們的項目文件夾:
4 斷點及調試窗口設置
程序在我們點擊綠色三角形按鈕時,一下子就運行到最后一步了,速度非常快,如果最終輸出的結果和我們預期的不一樣,我們如何查找代碼的哪一步出了問題呢?秘訣就是讓它運行慢下來(類似于魔術慢放),一次只讓程序運行一步,如何讓程序運行慢下來,那就是斷點調試!如下圖所示,在位置1處添加斷點(斷點位置代表從哪一步我們開始慢下來),點擊位置2啟動調試。
當點擊蟲子按鈕后,調試就啟動了,出現藍色長條代表調試啟動,如下圖所示:
注意:藍條所在行,表示此語句還未得到執行。
點擊了上圖的單步運行按鈕(上圖2指向的折彎箭頭),得到如下圖:
什么是調試?
程序每一步的運行會發生計算,計算會改變變量的值,我們通過變量監視窗口,如果發現某個變量值不符合我們預期時,就代表我們找到了bug(程序員把程序中出現的錯誤稱為bug)。
?
5 學習C語言后的境界
掌握的能力是程序的調試能力,要靈活掌握單步調試手段,要能在清晰理解程序執行過程的基礎上準確分析數據(變量)的變化過程,定位程序的問題點,進而解決問題。學好了C語言,才能去練習中級階段的數據結構算法實戰,而且以后在學習其他任何語言并調試程序的問題時都會事半功倍!
6 練習題
1、程序的作用是完成某種計算?
A.正確????????B.錯誤
答案:A
2、一個項目可以有2個main函數?
A.正確????????B.錯誤
答案:B
解釋:一個項目只能有一個main函數,因為main 函數是入口函數,程序從這里開始運行。
3、源代碼文件main.c需要編譯為最終的可執行文件,CPU才能執行,CPU不能夠直接去運行main.c?
A.正確????????B.錯誤
答案:A
解釋:因為編譯好的可執行文件內的指令是才能夠被CPU的譯碼器解析。
4、CLion是點擊綠色三角形開啟調試?
A.正確????????B.錯誤
答案:B
解釋:綠色三角形按鈕是運行按鈕,綠色小蟲子按鈕才是調試按鈕。
5、CLion 調試時藍色長條線所在行代碼已經得到執行?
A.正確????????B.錯誤
答案:B
解釋:藍色長條線所在行代碼并未得到執行,是其將要被執行。