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