国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

淺談C++的語句語法與強制數(shù)據(jù)類型轉(zhuǎn)換

2020-01-26 14:53:52
字體:
供稿:網(wǎng)友

一個程序包含一個或多個程序單位(每個程序單位構(gòu)成一個程序文件)。每一個程序單位由以下幾個部分組成:
預(yù)處理命令。如#include命令和#define命令。
聲明部分。例如對數(shù)據(jù)類型和函數(shù)的聲明,以及對變量的定義。
函數(shù)。包括函數(shù)首部和函數(shù)體,在函數(shù)體中可以包含若干聲明語句和執(zhí)行語句。

如下面是一個完整的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í)行語句}

如果一個變量在函數(shù)之外進行聲明,此變量是全局變量,它的有效范圍是從該行開始到本程序單位結(jié)束。如果一個變量在函數(shù)內(nèi)聲明,此變量是局部變量,它的有效范圍是從該行開始到本函數(shù)結(jié)束。C++程序結(jié)構(gòu)可以用圖表示。

程序應(yīng)該包括數(shù)據(jù)描述(由聲明語句來實現(xiàn))和數(shù)據(jù)操作(由執(zhí)行語句來實現(xiàn))。數(shù)據(jù)描述主要包括數(shù)據(jù)類型的聲明、函數(shù)和變量的定義、變量的初始化等。數(shù)據(jù)操作的任務(wù)是對已提供的數(shù)據(jù)進行加工。

C++程序中最小的獨立單位是語句(statement)。它相當(dāng)于一篇文章中的一個句子。句子是用句號結(jié)束的。語句一般是用分號結(jié)束的(復(fù)合語句是以右花括號結(jié)束的)。

C++語句可以分為以下4種。

1. 聲明語句
如int a, b;在C語言中,只有產(chǎn)生實際操作的才稱為語句,對變量的定義不作為語句,而且要求對變量的定義必須出現(xiàn)在本塊中所有程序語句之前。因此C程序員已經(jīng)養(yǎng)成了一個習(xí)慣: 在函數(shù)或塊的開頭位置定義全部變量。在C++中,對變量(以及其他對象)的定義被認為是一條語句,并且可以出現(xiàn)在函數(shù)中的任何行,即可以放在其他程序語句可以出現(xiàn)的地方,也可以放在函數(shù)之外。這樣更加靈活,可以很方便地實現(xiàn)變量的局部化(變量的作用范圍從聲明語句開始到本函數(shù)或本塊結(jié)束)。

2. 執(zhí)行語句
通知計算機完成一定的操作。執(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ù)和流對象調(diào)用語句。函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成一個語句,例如:

  sort(x, y,z); //假設(shè)已定義了sort函數(shù),它有3個參數(shù)  cout<<x<<endl; //流對象調(diào)用語句

3) 表達式語句。由一個表達式加一個分號構(gòu)成一個語句。最典型的是:由賦值表達式構(gòu)成一個賦值語句。

  i=i+1 //是一個賦值表達式  i=i+1; //是一個賦值語句

任何一個表達式的最后加一個分號都可以成為一個語句。一個語句必須在最后出現(xiàn)分號。

表達式能構(gòu)成語句是C和C++語言的一個重要特色。C++程序中大多數(shù)語句是表達式語句(包括函數(shù)調(diào)用語句)。

3. 空語句
下面是一個空語句:

  ; // 該語句只有一個分號

即只有一個分號的語句,它什么也不做。有時用來做被轉(zhuǎn)向點,或循環(huán)語句中的循環(huán)體。

4. 復(fù)合語句
可以用 { }把一些語句括起來成為復(fù)合語句。如下面是一個復(fù)合語句。

{  z=x+y;  if(z>100) z=z-100;    cout<<z;}


注意:復(fù)合語句中最后一個語句中最后的分號不能省略。

C++強制類型轉(zhuǎn)換
在表達式中不同類型的數(shù)據(jù)會自動地轉(zhuǎn)換類型,以進行運算。有時程序編制者還可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成所需類型。例如:

  •     (double)a  (將a轉(zhuǎn)換成double類型)
  •     (int)(x+y)   (將x+y的值轉(zhuǎn)換成整型)
  •     (float)(5%3)  (將5%3的值轉(zhuǎn)換成float型)

強制類型轉(zhuǎn)換的一般形式為:

  (類型名)(表達式)

注意:如果要進行強制類型轉(zhuǎn)換的對象是一個變量,該變量可以不用括號括起來。如果要進行強制類型轉(zhuǎn)換的對象是一個包含多項的表達式,則表達式應(yīng)該用括號括起來。如果寫成

  (int)x+y

則只將x轉(zhuǎn)換成整型,然后與y相加。

以上強制類型轉(zhuǎn)換的形式是原來C語言使用的形式,C++把它保留了下來,以利于兼容。C++還增加了以下形式:

  類型名(表達式)如  int(x)或  int(x+y)

類型名不加括號,而變量或表達式用括號括起來。這種形式類似于函數(shù)調(diào)用。但許多人仍習(xí)慣于用第一種形式,把類型名包在括號內(nèi),這樣比較清楚。

需要說明的是在強制類型轉(zhuǎn)換時,得到一個所需類型的中間變量,但原來變量的類型未發(fā)生變化。例如:

  (int)x

如果x原指定為float型,值為3.6,進行強制類型運算后得到一個int型的中間變量,它的值等于3,而x原來的類型和值都不變。

【例】強制類型轉(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;}

運行結(jié)果如下:

  x=3.6,i=3

x的型仍為float型,值仍等于3.6。

由上可知,有兩種類型轉(zhuǎn)換,一種是在運算時不必用戶指定,系統(tǒng)自動進行的類型轉(zhuǎn)換,如3+6.5。第二種是強制類型轉(zhuǎn)換。當(dāng)自動類型轉(zhuǎn)換不能實現(xiàn)目的時,可以用強制類型轉(zhuǎn)換。此外,在函數(shù)調(diào)用時,有時為了使實參與形參類型一致,可以用強制類型轉(zhuǎn)換運算符得到一個所需類型的參數(shù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通城县| 仁寿县| 松潘县| 大余县| 丰城市| 怀远县| 康乐县| 株洲县| 池州市| 平塘县| 洛隆县| 宜昌市| 高碑店市| 峨边| 社会| 沧源| 白城市| 涡阳县| 随州市| 江北区| 汝阳县| 含山县| 米脂县| 永顺县| 天津市| 个旧市| 襄城县| 洱源县| 萝北县| 泉州市| 东台市| 德保县| 桃江县| 康定县| 鹤峰县| 冀州市| 贡觉县| 区。| 清远市| 嫩江县| 嘉峪关市|