日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

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

詳解C++編程中的主表達(dá)式與后綴表達(dá)式編寫基礎(chǔ)

2020-05-23 14:11:11
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++編程中的主表達(dá)式與后綴表達(dá)式編寫基礎(chǔ),是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
 

主表達(dá)式
主表達(dá)式是更復(fù)雜的表達(dá)式的構(gòu)造塊。它們是文本、名稱以及范圍解析運算符 (::) 限定的名稱。主表達(dá)式可以具有以下任一形式:

    literalthis:: namename ( expression )

literal 是常量主表達(dá)式。其類型取決于其規(guī)范的形式。
this 關(guān)鍵字是指向類對象的指針。它在非靜態(tài)成員函數(shù)中可用,并指向為其調(diào)用函數(shù)的類的實例。 this 關(guān)鍵字只能在類成員函數(shù)體的外部使用。
this 指針的類型是未特別修改 this 指針的函數(shù)中的 type *const(其中 type 是類名)。以下示例演示成員函數(shù)聲明以及 this 的類型:

// expre_Primary_Expressions.cpp// compile with: /LDclass Example{public:  void Func();     // * const this  void Func() const;  // const * const this  void Func() volatile; // volatile * const this};

范圍解析運算符 (::) 后跟名稱構(gòu)成了主表達(dá)式。此類名稱必須是全局范圍內(nèi)的名稱,而不是成員名稱。此表達(dá)式的類型由名稱的聲明決定。如果聲明的名稱是左值,則該類型是左值(即,它可以出現(xiàn)在賦值運算符表達(dá)式的左側(cè))。范圍解析運算符允許引用全局名稱,即使該名稱隱藏在當(dāng)前范圍中也如此。
用括號括起的表達(dá)式是與不帶括號的表達(dá)式具有相同的類型和值的主表達(dá)式。如果不帶括號的表達(dá)式是左值,則用括號括起的表達(dá)式也是左值。
在上面給出的主表達(dá)式語法的上下文中,name 表示為 name 描述的語法中的任何內(nèi)容,不過,當(dāng)在名稱前使用范圍解析運算符時,不允許使用只能在類中出現(xiàn)的名稱的類型。這包括用戶定義的轉(zhuǎn)換函數(shù)名稱和析構(gòu)函數(shù)名稱。
主表達(dá)式的示例包括:

100 // literal'c' // literalthis // in a member function, a pointer to the class instance::func // a global function::operator + // a global operator function::A::B // a global qualified name( i + 1 ) // a parenthesized expression

下面的示例是所有考慮的 name 以及各種形式的主表達(dá)式:

MyClass // a identifierMyClass::f // a qualified nameoperator = // an operator function nameoperator char* // a conversion operator function name~MyClass // a destructor nameA::B  // a qualified nameA<int> // a template id

后綴表達(dá)式

后綴表達(dá)式包含主表達(dá)式或者其中的后綴運算符跟在主表達(dá)式之后的表達(dá)式。 下表列出了后綴運算符。
后綴運算符
運算符名稱
運算符表示法
下標(biāo)運算符
[ ]
函數(shù)調(diào)用運算符
( )
顯式類型轉(zhuǎn)換運算符
type-name ( )
成員訪問運算符
. 或 –>
后綴遞增運算符
++
后綴遞減運算符
––
以下語法描述了可能的后綴表達(dá)式:

     primary-expression postfix-expression [ expression ]postfix-expression ( expression-list)simple-type-name ( expression-list)postfix-expression . namepostfix-expression –> namepostfix-expression ++postfix-expression ––cast-keyword < typename > (expression )typeid ( typename )

上面的 postfix-expression 可能是主表達(dá)式或另一個后綴表達(dá)式。 請參閱主表達(dá)式。 后綴表達(dá)式從左到右進(jìn)行分組,這允許表達(dá)式按如下方式鏈接起來:
func(1)->GetValue()++
在上面的表達(dá)式中,func 是主表達(dá)式,func(1) 是函數(shù)后綴表達(dá)式,func(1)->GetData 是指定類成員的后綴表達(dá)式,func(1)->GetData() 是另一個函數(shù)后綴表達(dá)式,整個表達(dá)式是增加 GetData 的返回值的后綴表達(dá)式。 該表達(dá)式的整體含義是作為參數(shù)傳遞 1 的 "call func,并作為返回值獲取一個指向類的指針。 然后調(diào)用此類上的 GetValue(),接著遞增返回的值。
上面列出的表達(dá)式是賦值表達(dá)式,這意味著這些表達(dá)式的結(jié)果必須為右值。
后綴表達(dá)式形式
simple-type-name ( expression-list )
指示構(gòu)造函數(shù)的調(diào)用。 如果 simple-type-name 是基本類型,則表達(dá)式列表必須是單個表達(dá)式,并且該表達(dá)式指示表達(dá)式的值將轉(zhuǎn)換為基礎(chǔ)類型。 此類強(qiáng)制轉(zhuǎn)換表達(dá)式模仿構(gòu)造函數(shù)。 由于此形式允許使用相同的語法來構(gòu)造基本類型和類,因此它在定義模板類時特別有用。
cast-keyword 是 dynamic_cast、static_cast 或 reinterpret_cast 之一。 可在 dynamic_cast、static_cast 和 reinterpet_cast 中找到更多信息。
typeid 運算符被視為后綴表達(dá)式。 請參閱 typeid 運算符。
形參和實參
調(diào)用程序會將信息傳遞到“實參”中的已調(diào)用函數(shù)。 已調(diào)用函數(shù)使用對應(yīng)的“形參”訪問信息。
當(dāng)調(diào)用函數(shù)時,將執(zhí)行以下任務(wù):
計算所有實參(調(diào)用方提供的參數(shù))。 沒有計算這些參數(shù)的隱含順序,但所有參數(shù)都會計算,并且所有副作用都會在進(jìn)入該函數(shù)前完成。
使用每個形參在表達(dá)式列表中對應(yīng)的實參來初始化該形參。 (形參是在函數(shù)頭中聲明并在函數(shù)體中使用的參數(shù)。) 轉(zhuǎn)換就像是通過初始化完成的一樣 - 標(biāo)準(zhǔn)的和用戶定義的轉(zhuǎn)換在將實參轉(zhuǎn)換為正確的類型時執(zhí)行。 以下代碼從概念上演示了所執(zhí)行的初始化:

void Func( int i ); // Function prototype...Func( 7 );     // Execute function call

調(diào)用前的概念性初始化為:

int Temp_i = 7;Func( Temp_i );

請注意,初始化就像使用等號語法(而不是括號語法)一樣執(zhí)行。 在將值傳遞到函數(shù)之前制作了 i 的副本。
因此,如果函數(shù)原型(聲明)對 long 類型的參數(shù)進(jìn)行調(diào)用,并且調(diào)用程序提供了 int 類型的實參,則會使用到 long 類型的標(biāo)準(zhǔn)類型轉(zhuǎn)換提升該實參。
如果提供了一個實參,但它沒有到形參的類型的標(biāo)準(zhǔn)的或用戶定義的轉(zhuǎn)換,則是一個錯誤。
對于類類型的實參,將通過調(diào)用類的構(gòu)造函數(shù)初始化形參。 
執(zhí)行函數(shù)調(diào)用。
以下程序片段演示了函數(shù)調(diào)用:

// expre_Formal_and_Actual_Arguments.cppvoid func( long param1, double param2 );int main(){  long i = 1;  double j = 2;  // Call func with actual arguments i and j.  func( i, j );}// Define func with formal parameters param1 and param2.void func( long param1, double param2 ){}

當(dāng)從 main 調(diào)用 func 時,將使用 param1(i 將轉(zhuǎn)換為類型 ilong 以對應(yīng)使用標(biāo)準(zhǔn)轉(zhuǎn)換的正確類型)的值初始化形參 ,并使用 param2(j 將轉(zhuǎn)換為使用標(biāo)準(zhǔn)轉(zhuǎn)換的類型 jdouble)的值初始化形參 。
參數(shù)類型的處理
不能在函數(shù)主題內(nèi)更改聲明為 const 類型的形參。 函數(shù)可以更改類型不是 const 的任何參數(shù)。 但是,更改對于函數(shù)而言是本地進(jìn)行的,且不會影響實參的值,除非實參是對非 const 類型的對象的引用。
以下函數(shù)闡釋了其中的一些概念:

// expre_Treatment_of_Argument_Types.cppint func1( const int i, int j, char *c ) {  i = 7;  // C3892 i is const.  j = i;  // value of j is lost at return  *c = 'a' + j;  // changes value of c in calling function  return i;}double& func2( double& d, const char *c ) {  d = 14.387;  // changes value of d in calling function.  *c = 'a';  // C3892 c is a pointer to a const object.  return d;}

省略號和默認(rèn)參數(shù)
通過使用下列兩種方法之一,可以聲明函數(shù)以接受比函數(shù)定義中指定的參數(shù)更少的參數(shù):省略號 (...) 或默認(rèn)參數(shù)。
省略號表示可能需要參數(shù),但聲明中未指定數(shù)目和類型。 這通常是較差的 C++ 編程做法,因為它使您無法獲得 C++ 的一個優(yōu)點,即類型安全。 不同的轉(zhuǎn)換將應(yīng)用于使用省略號聲明的函數(shù),而不是應(yīng)用于那些已知其形參和實參類型的函數(shù):
如果實參的類型為浮點,則在函數(shù)調(diào)用前將其提升為雙精度類型。
使用整型提升將所有有符號或無符號的 char、short、枚舉類型或位域轉(zhuǎn)換為有符號或無符號的 int。
類類型的所有參數(shù)都作為數(shù)據(jù)結(jié)構(gòu)通過值進(jìn)行傳遞;副本是由二進(jìn)制復(fù)制創(chuàng)建的,而不是通過調(diào)用類的復(fù)制構(gòu)造函數(shù)(如果存在)創(chuàng)建的。
如果使用省略號,則必須在參數(shù)列表中最后聲明它。 

如果函數(shù)調(diào)用中沒有提供值,則可通過默認(rèn)參數(shù)指定參數(shù)應(yīng)采用的值。 以下代碼片段演示默認(rèn)參數(shù)的工作方式。

// expre_Ellipses_and_Default_Arguments.cpp// compile with: /EHsc#include <iostream>// Declare the function print that prints a string,// then a terminator.void print( const char *string,      const char *terminator = "/n" );int main(){  print( "hello," );  print( "world!" );  print( "good morning", ", " );  print( "sunshine." );}using namespace std;// Define print.void print( const char *string, const char *terminator ){  if( string != NULL )    cout << string;  if( terminator != NULL )    cout << terminator;}

上面的程序聲明一個采用兩個參數(shù)的函數(shù) print。 而第二個參數(shù) terminator 具有默認(rèn)值 "/n"。 在 main 中,對 print 的前兩個調(diào)用允許默認(rèn)的第二個參數(shù)提供新行以終止打印的字符串。 第三個調(diào)用為第二個參數(shù)指定顯式值。 該程序的輸出為

hello,world!good morning, sunshine.


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
一区二区日韩av| 国产黄色片中文字幕| 日韩欧美在线1卡| 91精品国产91久久久久久三级| 国产小视频免费在线观看| 日韩字幕在线观看| 日韩一级免费视频| 国产日韩精品久久久| 欧美日韩中文字幕| 欧美日韩激情一区| 欧美亚洲国产日韩2020| 日韩精品手机在线观看| 日韩网站中文字幕| 欧美日韩国产区| 欧美日韩精品欧美日韩精品| 青青久在线视频免费观看| 精品欧美久久久| 日韩中文在线字幕| 色综合婷婷久久| 成年人看的羞羞网站| 精品欧美不卡一区二区在线观看| 国产日韩精品电影| а√天堂中文在线资源8| 欧美日韩第一区日日骚| 亚洲三级av| 在线三级av| 欧美日韩精品在线观看| 中文字幕日韩高清| 亚洲一区视频在线观看视频| 日韩精品视频中文字幕| 中文字幕狠狠干| av中文资源在线| 亚洲免费中文字幕| 日韩三区免费| 亚洲成av人片一区二区密柚| 国产三级在线| 欧美日韩国产页| 国产字幕在线看| 欧美 日韩 国产 在线观看| 91精品999| 欧美日韩国产第一页| 欧美激情视频一区二区三区在线播放| 91精品国产综合久久蜜臀| xxxxx性| 日韩精品在线网站| 天天综合天天添夜夜添狠狠添| 欧美熟妇乱码在线一区| 国产天堂素人系列在线视频| 国产福利在线导航| 免费看黄资源大全高清| 国产传媒久久久| 精品日韩视频在线观看| 欧美日韩国产黄色| 欧美日韩精品国产| 三级精品视频| 国产日产一区二区三区| 福利一区二区| 国产精久久久久| 中文精品电影| 黄色在线资源| 亚洲一区日韩在线| 精品人妻一区二区免费视频| 亚洲一区中文字幕在线观看| 国产高清精品在线| 亚洲a中文字幕| 日韩免费久久| 日韩免费高清一区二区| 国产不卡一区二区在线观看| 中文精品在线观看| 日韩色在线观看| 天天综合天天综合| 亚洲一区视频在线观看视频| 国产丝袜在线播放| 久久久精品99| 国产乱码在线| 国产欧美日韩91| 国产www在线观看| 亚洲一区视频在线观看视频| 国产欧美日韩在线| 国产久卡久卡久卡久卡视频精品| 国产91久久久久| 国产欧美一级| 午夜伦欧美伦电影理论片| 中文字幕日韩在线视频| 99精品人妻国产毛片| 欧美日韩亚洲综合在线| 日韩不卡高清视频| 黄色一区二区在线| 一区三区二区视频| 中文字幕亚洲乱码| 一区二区三区在线不卡| 精品视频资源站| 视频一区三区| 日韩三级视频在线| 交视频在线观看国产| 伊人网站在线| 国产乱国产乱300精品| 国产婷婷色一区二区三区在线| www日韩在线观看| 欧美高清一区| 在线日韩中文字幕| 中文字幕在线官网| 亚洲成av人片| 国产日韩在线亚洲字幕中文| 中文字幕日韩欧美在线| 一区二区三区在线|网站| 久久69成人| 欧美日韩中国免费专区在线看| 久久精品一二三| 国产黄色高清在线| 国产乱国产乱老熟300| 成人ww免费完整版在线观看| 亚洲免费观看视频| 国产欧美综合视频| 亚洲高清视频在线| 日韩av在线中文字幕| 国产在线第一页| 日韩久久精品网| 欧美专区中文字幕| 日韩国产欧美| 91精品国产综合久久久蜜臀粉嫩| 你懂的亚洲视频| 日韩精品欧美| 日韩视频 中文字幕| 国产高清在线视频| 精品欧美不卡一区二区在线观看| 一区二区不卡在线| 国产在线欧美| 欧美日韩三级视频| 欧美日韩精品免费| 日韩在线视频免费观看高清中文| 日韩欧美在线网址| 99精品视频国产| 欧美三级在线视频| 欧美日韩激情一区二区三区| 日韩欧美国产成人精品免费| 欧美久久久久久蜜桃| 一级免费a一片| 福利在线国产| 日韩国产欧美亚洲| 日韩欧美在线网站| 日本a级黄色| 一区二区视频免费看| 久久婷婷综合国产| 日韩中文字幕网| 欧美日韩中国免费专区在线看| 国产拍揄自揄精品视频麻豆| 国产欧美日韩亚州综合| 亚洲中文字幕一区| 亚洲开心激情| 午夜精品一区二区三区免费视频| 蜜臀国产一区| 亚洲精品中文字幕乱码三区| 中文字幕在线国产| 亚洲综合欧美在线| 亚洲校园欧美国产另类| 二区中文字幕| 国产高清在线视频| 91精品国产入口| 亚洲福利一区二区三区| 日韩精品免费观看视频| 精品对白一区国产伦| 92久久精品| 国产在线导航| 中文字幕日韩第一页| 日本а中文在线天堂| 91精品国产自产观看在线| 中文字幕日韩国产| 亚洲一区在线观看网站| 日韩在线观看a| 精品视频国产| 欧美日韩国产综合视频在线观看 | 欧美日韩在线国产| 视频一区不卡| 一区在线视频观看| 色综合久久六月婷婷中文字幕| 在线观看一区| 久久精品网站免费观看| 欧美一级久久久久久久久大| 日韩国产欧美三级| 欧美日韩高清| 国产黄色片大全| 91精品国产综合久久精品app| 日韩欧美一级在线播放| 日韩不卡在线播放| 日韩欧美一二三| 91极品视频在线观看| 久久99久久久久| 中文字幕亚洲区| 中文精品视频| 国产蜜臀在线| av亚洲免费| 欧美日韩国产在线观看| 亚洲中午字幕| 激情久久99| 免费看黄资源大全高清| 中文字幕精品在线视频| 中文字幕国产欧美| 99久久精品国产亚洲| 久久精品国产2020观看福利| 亚洲黄色片在线观看| 精品欧美日韩在线| 日韩午夜中文字幕| 91精品国产综合久久精品| 国产一级视频| 久久久99免费| 欧美成人二区| 欧美中文字幕在线观看视频| 国产成人精品999| 久久久久蜜桃| 美女在线视频一区| 一本一道综合狠狠老| 国产在线高清精品| 日韩欧美在线不卡| 中文字幕 亚洲视频| 精品乱人伦一区二区三区| 国产亚洲二区| 一区二区中文字幕在线| 亚洲欧美中文字幕| 色综合天天综合网天天狠天天| 国产欧美日产一区| 久久91精品国产91久久小草| 日韩亚洲欧美中文三级| 欧美自拍一区| 日韩精品在线观看视频| www日韩欧美| 在线一区二区不卡| 日韩美女中文字幕| 中文字幕成人乱码在线电影| 欧美日韩高清在线| 日韩亚洲欧美中文三级| 91精品久久久久久久91蜜桃| 日本а中文在线天堂| 日韩在线不卡一区| av免费在线不卡| 91精品国产91综合久久蜜臀| 91精品999| 欧美成人精品在线| 日韩视频精品在线| 日韩亚洲不卡在线| 日韩欧美中文| 国产亚洲污的网站| 亚洲а∨精品天堂在线| 亚洲人成欧美中文字幕| 高清在线一区| 精品视频在线视频| 日韩在线a电影| 国产综合成人久久大片91| 国产在线观看黄色| 日韩久久久精品| 日韩精品在线网站| 91精品国产乱码久久蜜臀| 福利一区二区| 一区二区三区精品99久久| 快she精品国产999| 国产日韩av一区二区| 五月综合激情日本mⅴ| 国产欧美久久久精品影院| 日韩av一区在线| 日韩在线视频免费观看高清中文| www.中文字幕在线| 中文国产字幕在线观看| 日韩精品资源二区在线| 日韩一级在线免费观看| 日韩精品在线第一页| 91精品国产高清| 国产乱国产乱老熟300| 日韩国产91| 精品中文在线| 亚洲黄色www| 日韩欧美一二三| 在线综合 亚洲 欧美中文字幕| 亚洲黄色一区二区| 久久香蕉精品| 中文字幕 乱码 中文乱码91| 欧美日韩国产高清视频| 精品成a人在线观看| 国产欧美综合在线观看第十页| 国产一级在线播放| 成人久久在线| 国产欧美久久久精品影院| 91精品综合久久| 亚洲欧美小说国产图片| 日韩一级二级三级| 亚洲 欧美综合在线网络| 日韩字幕在线观看| 国产91欧美| 国产95在线|亚洲| 欧美人妻一区二区三区| 精品午夜av| 欧美中文字幕视频在线观看| 午夜少妇久久久久久久久| 日韩欧美一级二级三级久久久| 亚洲a级在线播放观看| 国产视频一二区| 国产一区 二区 三区一级| 欧美一级手机免费观看片| 麻豆精品视频入口| 欧美国产综合在线V| 欧美wwww| 国产乱码午夜在线视频| 日韩高清不卡| 亚洲午夜av| 亚洲高清免费一级二级三级| 国产一区三区三区| www中文字幕| 91蜜桃婷婷狠狠久久综合9色| 国产激情久久久| 亚洲综合在线中文字幕| 亚洲九九精品| 欧美日韩国产专区| 国产欧美综合在线| 国产一级片播放| 91精品国产全国免费观看 | 欧美亚洲国产免费| 日韩精品手机在线观看| 中文在线视频| 国产丝袜欧美中文另类| 精品亚洲综合| 91精品国产综合久久精品app| 日韩精品丝袜在线| 日韩在线a电影| 国产欧美日韩在线看| 一区二区三区视频网站| 99综合视频| 欧美日韩中文另类| 一区二区三区视频网站| 国产婷婷色一区二区三区在线| 日韩精品免费观看视频| 国产黄在线观看| 亚洲理论中文字幕| 成人一区二区不卡免费| 国产资源在线观看入口av| 免费在线视频一级不卡| 国产欧美综合视频| 麻豆精品视频入口| 自拍日韩亚洲一区在线| 欧美1区免费| 中文字幕第一页在线播放| 激情综合色综合久久| 亚洲.国产.中文慕字在线| 日韩欧美久久| 91精品国产综合久久久蜜臀粉嫩 | 亚洲三级av| 国产午夜在线观看| 午夜视频在线观看一区| 99pao成人国产永久免费视频| 免费视频久久| 在线一区av| 中文字幕日韩精品在线| 国产欧美日韩精品在线| 中文字幕最新精品| 日韩欧美一级精品久久| 精品亚洲国内自在自线福利| 日韩国产一区久久| 欧美日韩午夜在线视频| 中文字幕精品www乱入免费视频| 国产欧美日韩91| 亚洲欧美韩国综合色| 国产免费一级| 亚洲一区在线观看视频| 国产95在线|亚洲| 日韩精品在线视频| 中文字幕在线日韩| 国产高清一级片| 亚洲欧美99| 欧美三级视频在线| 欧美日韩国产影片| 国产 日韩 欧美 综合 一区| 欧美日韩在线播放一区| 日韩欧美中文视频| 精品视频资源站| 国产视频一区三区| 91精品无人成人www| 精品色蜜蜜精品视频在线观看 | 日韩在线一区二区视频| 亚洲综合视频一区| 国产91大片| 一区精品在线播放| 亚洲一区中文| 亚洲一区导航| 国产日韩精品视频| 国产色综合网| 免费高清特黄a大片| 视频一区中文字幕国产| 国产午夜精品视频| 日韩精品a在线观看91| 日韩专区中文字幕| 韩国av一区二区| 欧美日韩尤物久久| 成人一区二区不卡免费| 高清不卡一区二区| 日韩美女视频一区二区在线观看| 精品1区2区3区| 蜜桃视频中文字幕| 免费视频久久| 日韩欧美久久久| 亚洲三级免费看| 色一区在线观看| 欧美日韩综合色|