什么是C++語言?
C++語言是在C語言的基礎上發展起來的一種混合型的高級程序設計語言。它既具有獨特的面向對象的特征,全面支持面向對象技術;同時又具有傳統C語言的特點,支持面向過程的結構化程序設計。C++語言是當前使用最廣泛的程序設計語言之一,深受廣大編程人員的喜愛,包括信息奧賽,主要就是學習面向過程的結構化程序設計。
為了解決某一特定問題用某一種計算機語言編寫的指令序列稱為程序,實際上你對計算機做的操作都有相應的程序支持的結果。近期,我們會連載C++的學習教程,喜歡的話跟我們一起來吧。
什么是程序設計?
程序是程序設計的結果,在執行程序前必須先排定程序,排定以時間為進程必須完成的各種操作叫程序設計。
用高級語言進行程序設計時要注意以下三個概念:
語法,每種計算機語言都有自己的語法規則。
語義,即某一語法成分的含義。
語用,即正確使用語言。
為了說明C++程序的基本結構先舉三個例題,然后通過三個例題引出C++程序基本結構。
【例1-1-1】文本的原樣輸出。文件名為1-1-1.cpp。
//文本原樣輸出程序
#include<iostream>
using namespace std;
int main()
{
cout << "Welcome to C++!\n";
system("pause"); // 程序暫停
}
程序運行顯示:
Welcome to C++!
該程序中,main()表示主函數,每個C++程序必須有且只能有一個主函數,C++程序總是從主函數開始執行的。main()函數之前的int表示main()函數返回值為整形,這符合C++的最新標準。在花括號內的部分是函數體,函數體由語句組成,每個語句由分號結束。cout與符號“<<”結合使用可以輸出常量、變量的值及字符串。'\n'是換行符。
#include引用頭文件<iostream>是為了能使用輸入流cin和輸出流cout。
using namespace std; :“使用命名空間std”,句末有分號結束,是一條語句。C++標準庫中的類和函數是在命名空間std中聲明的。必須寫,否則會出錯。
system("pause");可讓程序暫停,以便于觀察程序的運行情況。為此須先引用頭文件<iostream>。
程序中以“//”開頭的是注釋,注釋是對程序的說明,用來提高程序的可讀性,可以放在程序的任何位置,對程序的編譯和運行不起作用。
【例1-1-2】求兩個整數的和。文件名為1-1-2.cpp
/*求兩個整數的和程序*/
#include<iostream>
using namespace std;
int main()
{
int a,b,sum;//說明變量a,b,sum為整型數
cout << "輸入變量a和b:"; ?//顯示提示信息
cin >> a >> b; //從鍵盤上輸入變量a、b的值
sum = a + b; //求和
cout << "Sum =" << sum << endl; //輸出結果
system("pause"); //暫停輸出結果
}
程序運行顯示:
輸入變量a和b:3 ?5
Sum = 8
該程序中的語句:int a,b,sum; 用來說明變量a、b、sum為int(整型)變量。程序中的語句:sum=a+b;是一個賦值語句,表示將a和b的值相加,其結果輸送給變量sum。在“/*”和“*/”之間的部分也表示注釋。“endl”是換行符。
【例1-1-3】輸入兩個整數a和b,用自定義函數add()求兩數和。程序名為1-1-3.cpp
#include<iostream>
using namespace std;
int add(int x, int y)
{
int z;
z=x+y;
return z;
}
int main()
{
int a,b,sum;
cout << "輸入變量a和b:";
cin >> a >> b;
sum = add (a,b);
cout << "Sum = "<< sum << endl;
system("pause");
}
程序輸出結果與前例相同。
該程序由兩個函數組成:主函數main()和被調用函數add()。函數add()的作用是求x和y的和,并賦給z,最后通過return z語句返回給主函數。主函數用兩個變量a和b來存儲輸入的兩個值,調用add()函數將變量a、b的值傳送給形參x、y,再求兩數和,并返回給sum輸出結果。
通過【例1-1-3】,可以歸納出C++程序基本結構如下。
(1)C++程序由函數組成
C++程序由包括main()在內的一個或多個函數組成,函數是構成C++程序的基本單位。其中名為main()的函數稱為主函數,可以將它放在程序的任何位置。但是,不論主函數放在程序的什么位置,一個C++程序總是從主函數開始執行,由主函數來調用其他函數。所以,任何一個可運行的C++程序必須有一個且只能有一個主函數。被調用的其他函數可以是系統提供的庫函數,也可以是用戶自定義的函數。例如,【例1-1-3】的C++程序就是由主函數main()和用戶自定義函數add()組成的。
(2)C++函數由函數說明與函數體兩部分組成
①函數說明
函數說明由函數類型、函數名、函數參數(形參)及其類型組成。例如:
int add(int x, int y)
表示自定義了一個名為add的函數,函數值的類型為int(整型),該函數有兩個形式參數x、y,其類型均為int(整型)。
無返回值的函數是void類型(無值類型)。main()函數是一個特殊的函數,可看作是由操作系統調用的一個函數,其返回值是int類型。函數參數可以沒有,但函數名后面的括號不能省略。
②函數體
函數說明下面花括號括起來的部分稱為函數體。例如:
{
int z; //變量定義
z = x + y; //執行語句
return z;
}
如果一個函數內有多對花括號,則最外層的一對花括號為函數體的范圍。通常函數體由變量定義和執行語句兩部分組成。在某些情況下可以沒有變量定義,甚至可以既無變量定義又無執行語句(即空函數)。例如:
void dump(void)
{
}
(3)C++中每一個語句必須以分號結束
例如:
int z;
z= x + y;
(4)C++程序的書寫格式
C++程序的書寫格式比較自由,一行內可以寫多個語句(語句之間用“;”隔開),一個語句也可以分成幾行來寫。例如,
int add (int x, int y)
{int z; z = x + y; return z;} //可將三條語句寫在一行內,但這樣書寫不規范。
為了便于程序的閱讀、修改和相互交流。程序的書寫必須符合以下基本規則。
①同層次語句必須從同一列開始書寫,同層次的開花括號必須與對應的閉花括號在同一列上;
②屬于內一層次的語句,必須縮進幾個字符,通常縮進兩個、四個或八個字符的位置;
③任一函數的定義均從第一列開始書寫。
(5)C++的輸入輸出
C++語言沒有專門的輸入/輸出語句,輸入/輸出操作是通過輸入/輸出流cin和cout來實現的。C++默認的標準輸入設備是鍵盤。C++默認標準輸出設備是顯示器。
(6)C++嚴格區分字母的大小寫
例如:int a, A;表示定義兩個不同的變量a、A。
(7)C++注釋
在C++程序的任何位置都可以插入注釋信息,以增強程序可讀性。注釋分行注釋和塊注釋兩種。
行注釋用兩個連續的“/”字符開始,它表示從此開始到本行結束為注釋內容。例如:
// 說明變量a,b,sum為整型數
塊注釋用“/*”和“*/”把注釋內容括起來,其中可以包含一個或多個語句。例如:
/*求兩個整數的和程序*/
(8)編譯預處理命令
以“#”開頭的行稱為編譯預處理命令。例如:#include<iostream>表示本程序包含有頭文件iostream。
以上所述的有關函數、輸入/輸出流等概念將在以后的章節中詳細介紹。C++程序基本結構可用圖1-1表示。