淺談C++的語句語法與強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
一個(gè)程序包含一個(gè)或多個(gè)程序單位(每個(gè)程序單位構(gòu)成一個(gè)程序文件)。每一個(gè)程序單位由以下幾個(gè)部分組成:
預(yù)處理命令。如#include命令和#define命令。
聲明部分。例如對(duì)數(shù)據(jù)類型和函數(shù)的聲明,以及對(duì)變量的定義。
函數(shù)。包括函數(shù)首部和函數(shù)體,在函數(shù)體中可以包含若干聲明語句和執(zhí)行語句。
如下面是一個(gè)完整的C++程序:
#include <iostream>//預(yù)處理命令
using namespace std; //在函數(shù)之外的聲明部分
int a=3; //在函數(shù)之外的聲明部分
int main( )//函數(shù)首部
{
float b;//函數(shù)內(nèi)的聲明部分
b=4.5; //執(zhí)行語句
cout<<a<<b;//執(zhí)行語句
return 0; //執(zhí)行語句
}
如果一個(gè)變量在函數(shù)之外進(jìn)行聲明,此變量是全局變量,它的有效范圍是從該行開始到本程序單位結(jié)束。如果一個(gè)變量在函數(shù)內(nèi)聲明,此變量是局部變量,它的有效范圍是從該行開始到本函數(shù)結(jié)束。C++程序結(jié)構(gòu)可以用圖表示。
程序應(yīng)該包括數(shù)據(jù)描述(由聲明語句來實(shí)現(xiàn))和數(shù)據(jù)操作(由執(zhí)行語句來實(shí)現(xiàn))。數(shù)據(jù)描述主要包括數(shù)據(jù)類型的聲明、函數(shù)和變量的定義、變量的初始化等。數(shù)據(jù)操作的任務(wù)是對(duì)已提供的數(shù)據(jù)進(jìn)行加工。
C++程序中最小的獨(dú)立單位是語句(statement)。它相當(dāng)于一篇文章中的一個(gè)句子。句子是用句號(hào)結(jié)束的。語句一般是用分號(hào)結(jié)束的(復(fù)合語句是以右花括號(hào)結(jié)束的)。
C++語句可以分為以下4種。
1. 聲明語句
如int a, b;在C語言中,只有產(chǎn)生實(shí)際操作的才稱為語句,對(duì)變量的定義不作為語句,而且要求對(duì)變量的定義必須出現(xiàn)在本塊中所有程序語句之前。因此C程序員已經(jīng)養(yǎng)成了一個(gè)習(xí)慣: 在函數(shù)或塊的開頭位置定義全部變量。在C++中,對(duì)變量(以及其他對(duì)象)的定義被認(rèn)為是一條語句,并且可以出現(xiàn)在函數(shù)中的任何行,即可以放在其他程序語句可以出現(xiàn)的地方,也可以放在函數(shù)之外。這樣更加靈活,可以很方便地實(shí)現(xiàn)變量的局部化(變量的作用范圍從聲明語句開始到本函數(shù)或本塊結(jié)束)。
2. 執(zhí)行語句
通知計(jì)算機(jī)完成一定的操作。執(zhí)行語句包括以下幾種。
1) 控制語句,完成一定的控制功能。C++有9種控制語句,即:
if( )~else~ (條件語句)
for( )~ (循環(huán)語句)
while( )~ (循環(huán)語句)
do~while( ) (循環(huán)語句)
continue(結(jié)束本次循環(huán)語句)
break(中止執(zhí)行switch或循環(huán)語句)
switch (多分支選擇語句)
goto (轉(zhuǎn)向語句)
return (從函數(shù)返回語句)
2) 函數(shù)和流對(duì)象調(diào)用語句。函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語句,例如:
sort(x, y,z); //假設(shè)已定義了sort函數(shù),它有3個(gè)參數(shù) cout<<x<<endl; //流對(duì)象調(diào)用語句
3) 表達(dá)式語句。由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成一個(gè)語句。最典型的是:由賦值表達(dá)式構(gòu)成一個(gè)賦值語句。
i=i+1 //是一個(gè)賦值表達(dá)式 i=i+1; //是一個(gè)賦值語句
任何一個(gè)表達(dá)式的最后加一個(gè)分號(hào)都可以成為一個(gè)語句。一個(gè)語句必須在最后出現(xiàn)分號(hào)。
表達(dá)式能構(gòu)成語句是C和C++語言的一個(gè)重要特色。C++程序中大多數(shù)語句是表達(dá)式語句(包括函數(shù)調(diào)用語句)。
3. 空語句
下面是一個(gè)空語句:
; // 該語句只有一個(gè)分號(hào)
即只有一個(gè)分號(hào)的語句,它什么也不做。有時(shí)用來做被轉(zhuǎn)向點(diǎn),或循環(huán)語句中的循環(huán)體。
4. 復(fù)合語句
可以用 { }把一些語句括起來成為復(fù)合語句。如下面是一個(gè)復(fù)合語句。
{
z=x+y;
if(z>100) z=z-100;
cout<<z;
}
注意:復(fù)合語句中最后一個(gè)語句中最后的分號(hào)不能省略。
C++強(qiáng)制類型轉(zhuǎn)換
在表達(dá)式中不同類型的數(shù)據(jù)會(huì)自動(dòng)地轉(zhuǎn)換類型,以進(jìn)行運(yùn)算。有時(shí)程序編制者還可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。例如:
- (double)a (將a轉(zhuǎn)換成double類型)
- (int)(x+y) (將x+y的值轉(zhuǎn)換成整型)
- (float)(5%3) (將5%3的值轉(zhuǎn)換成float型)
強(qiáng)制類型轉(zhuǎn)換的一般形式為:
(類型名)(表達(dá)式)
注意:如果要進(jìn)行強(qiáng)制類型轉(zhuǎn)換的對(duì)象是一個(gè)變量,該變量可以不用括號(hào)括起來。如果要進(jìn)行強(qiáng)制類型轉(zhuǎn)換的對(duì)象是一個(gè)包含多項(xiàng)的表達(dá)式,則表達(dá)式應(yīng)該用括號(hào)括起來。如果寫成
(int)x+y
則只將x轉(zhuǎn)換成整型,然后與y相加。
以上強(qiáng)制類型轉(zhuǎn)換的形式是原來C語言使用的形式,C++把它保留了下來,以利于兼容。C++還增加了以下形式:
類型名(表達(dá)式) 如 int(x) 或 int(x+y)
類型名不加括號(hào),而變量或表達(dá)式用括號(hào)括起來。這種形式類似于函數(shù)調(diào)用。但許多人仍習(xí)慣于用第一種形式,把類型名包在括號(hào)內(nèi),這樣比較清楚。
需要說明的是在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,但原來變量的類型未發(fā)生變化。例如:
(int)x
如果x原指定為float型,值為3.6,進(jìn)行強(qiáng)制類型運(yùn)算后得到一個(gè)int型的中間變量,它的值等于3,而x原來的類型和值都不變。
【例】強(qiáng)制類型轉(zhuǎn)換。
#include <iostream>
using namespace std;
int main( )
{
float x;
int i;
x=3.6;
i=(int)x;
cout<<"x="<<x<<",i="<< i<<endl;
return 0;
}
運(yùn)行結(jié)果如下:
x=3.6,i=3
x的型仍為float型,值仍等于3.6。
由上可知,有兩種類型轉(zhuǎn)換,一種是在運(yùn)算時(shí)不必用戶指定,系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換,如3+6.5。第二種是強(qiáng)制類型轉(zhuǎn)換。當(dāng)自動(dòng)類型轉(zhuǎn)換不能實(shí)現(xiàn)目的時(shí),可以用強(qiáng)制類型轉(zhuǎn)換。此外,在函數(shù)調(diào)用時(shí),有時(shí)為了使實(shí)參與形參類型一致,可以用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符得到一個(gè)所需類型的參數(shù)。
上一篇:C語言putenv()函數(shù)和getenv()函數(shù)的使用詳解
欄 目:C語言
下一篇:詳解C語言中的ttyname()函數(shù)和isatty()函數(shù)的用法
本文標(biāo)題:淺談C++的語句語法與強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2758.html
您可能感興趣的文章
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 01-10c語言求1+2+...+n的解決方法
- 01-10求子數(shù)組最大和的解決方法詳解
- 01-10深入理解約瑟夫環(huán)的數(shù)學(xué)優(yōu)化方法
- 01-10深入二叉樹兩個(gè)結(jié)點(diǎn)的最低共同父結(jié)點(diǎn)的詳解
- 01-10數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)- 解析最少換車次數(shù)的問題詳解
- 01-10c語言 跳臺(tái)階問題的解決方法


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改


