C 基礎知識(一) C 程式結構

2021-07-13 19:26:34 字數 3349 閱讀 3472

下面我們從乙個最簡單的程式入手看乙個c++程式的組成結構。

// my first program in c++

#include

using namespace std;

int main()

hello world!

上面左側顯示了我們的第乙個程式的源**,**檔名稱為hellowworld.cpp。右邊顯示了程式被編譯執行後的輸出結果。編輯和編譯乙個程式的方法取決於你用的是什麼編譯器,根據它是否有圖形化的介面及版本的不同,編譯方法也有可能不同,具體請參照你所使用的編譯器的使用說明。

以上程式是多數初學者學會寫的第乙個程式,它的執行結果是在螢幕上打出」hello world!」這句話。 雖然它可能是c++可寫出的最簡單的程式之一,但其中已經包含了每乙個c++程式的基本組成結構。 

下面我們就逐個分析其組成結構的每一部分:

// my first program in c++

這是注釋行。所有以兩個斜線符號(//)開始的程式行都被認為是注釋行,這些注釋行是程式設計師寫在程式源**內,用來對程式作簡單解釋或描述的, 對程式本身的執行不會產生影響。在本例中, 這行注釋對本程式是什麼做了乙個簡要的描述。

# include < iostream.h >

#標誌開始的句子是預處理器的指示語句。它們不是可執行**,只是對編譯器作出指示。在本例中這個句子# include < iostream.h > 告訴編譯器的預處理器將輸入輸出流的標準標頭檔案(iostream.h)包括在本程式中。這個標頭檔案包括了c++中定義的基本標準輸入-輸出程式庫的宣告。此處它被包括進來是因為在本程式的後面部分中將用到它的功能。

using namespace std;

c++標準函式庫的所有元素都被宣告在乙個名空間中,這就是std名空間。因此為了能夠訪問它的功能,我們用這條語句來表達我們將使用標準名空間中定義的元素。這條語句在使用標準函式庫的c++程式中頻繁出現,本教程中大部分**例子中也將用到它。

int main()

這一行為主函式(main function)的起始宣告。main function是所有c++程式的執行的起始點。 不管它是在**的開頭,結尾還是中間 – 此函式中的**總是在程式開始執行時第乙個被執行。並且,由於同樣的原因,所有c++程式都必須有乙個main function。

main 後面跟了一對圓括號(),表示它是乙個函式。c++中所有函式都跟有一對圓括號 (),括號中可以有一些輸入引數。如例題中顯示,主函式(main function)的內容緊跟在它的宣告之後,由花括號 ({})括起來。 

cout << 「hellow world!」;

這個語句在本程式中最重要。cout 是c++中的標準輸出流(通常為控制台,即螢幕),這句話把一串字串(本例中為」hello world」)插入輸出流(控制台輸出)中。cout 在的宣告在標頭檔案iostream.h中,所以要想使用cout 必須將該標頭檔案包括在程式開始處。

注意這個句子以分號(;)結尾 。分號標示了乙個語句的結束,c++的每乙個語句都必須以分號結尾。 (c++ 程式設計師最常犯的錯誤之一就是忘記在語句末尾寫上分號) 。

return 0;

返回語句(return) 引起主函式 main()執行結束,並將該語句後面所跟**(在本例中為0) 返回。這是在程式執行沒有出現任何錯誤的情況下最常見的程式結束方式。在後面的例子中你會看到所有c++程式都以類似的語句結束。

你可能注意到並不是程式中的所有的行都會被執行。程式中可以有注釋行(以//開頭),有編譯器預處理器的指示行(以#開頭),然後有函式的宣告(本例中main函式),最後是程式語句(例如呼叫cout <<),最後這些語句行全部被括在主函式的花括號({})內。

本例中程式被寫在不同的行中以方便閱讀。其實這並不是必須的。例如,以下程式

int main ()

也可以被寫成:

int main ()  

以上兩段程式是完全相同的。

在c++中,語句的分隔是以分號(;)為分隔符的。分行寫**只是為了更方便人閱讀。

以下程式包含更多的語句:

// my second program in c++

#include

int main ()

hello world! i'm a c++ program 

在這個例子中,我們在兩個不同的語句中呼叫了cout << 函式兩次。再一次說明分行寫程式**只是為了我們閱讀方便,因為這個main 函式也可以被寫為以下形式而沒有任何問題:

int main ()  

為方便起見,我們也可以把**分為更多的行來寫:

int main ()

它的執行結果將和上面的例子完全一樣。

這個規則對預處理器指示行(以#號開始的行)並不適用,因為它們並不是真正的語句。它們由預處理器讀取並忽略,並不會生成任何**。因此他們每乙個必須單獨成行,末尾不需要分號(;)

注釋 (comments)

注釋(comments)是源**的一部分,但它們會被編譯器忽略。它們不會生成任何執行**。 使用注釋的目的只是使程式設計師可以在源程式中插入一些說明解釋性的內容。 

c++ 支援兩中插入注釋的方法: 

// line comment

/* block comment */ 

第一種方法為行注釋,它告訴編譯器忽略從//開始至本行結束的任何內容。第二種為塊注釋(段注釋),告訴編譯器忽略在/*符號和*/符號之間的所有內容,可能包含多行內容。

在以下我們的第二個程式中,我們插入了更多的注釋。

/* my second program in c++

with more comments */

#include

int main ()

hello world! i'm a c++ program 

如果你在源程式中插入了注釋而沒有用//符號或/*和*/符號,編譯器會把它們當成c++的語句,那麼在編譯時就會出現乙個或多個錯誤資訊。 

C 程式結構

c 中的組織結構的關鍵概念是程式 program 命名空間 namespace 型別 type 成員 member 和程式集 assembly 命名空間 型別 成員 類 class 資料成員 字段 函式成員 方法,屬性,索引器,事件,運算子,構造 析構函式 介面 inte ce 函式成員 附經典理解...

c 程式結構

東南大學第5章c 程式結構 本章重點注意const static兩個關鍵字,也是企業面試中常見的面試題 一 作用域 作用域 識別符號的可見範圍 可見性 識別符號是否可以引用的問題。1,函式原型作用域 函式原型裡的形參 2,塊作用域 塊中的識別符號作用域在花括號之間 3,類作用域 類x的乙個成員m,在...

c程式結構

在我們學習 c 語言的基本構建塊之前,讓我們先來看看乙個最小的 c 程式結構,在接下來的章節中可以以此作為參考。c 程式主要包括以下部分 讓我們看一段簡單的 可以輸出單詞 hello world include int main 接下來我們講解一下上面這段程式 程式的第一行 include 是預處理...