亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

c++ primer之變量與基本類型

2019-11-08 02:03:50
字體:
來源:轉載
供稿:網友

如果表達式里既有帶符號類型又有無符號類型,當帶符號類型取值為負時會出現異常結果。因為帶符號數會自動轉換成無符號數。

unsigned u=10;int i=-42;std::cout<<i+i<<std::endl;//輸出-84std::cout<<u+i<<std::endl;//如果int占32位,輸出4294967264

引用與指針:

引用并非對象,引用只是為一個已經存在的對象所起的另外一個名字。

指針本身就是一個對象,允許對指針賦值和拷貝,而且在指針的生命周期內它可以先后指向不同的對象。

指針無需再定義時賦初值。但是在塊作用域定義內的指針一定要初始化。

利用相等操作符(==)或!=操作符比較指針時,比較的是兩個指針存放的地址值。


指向指針的引用:

引用本身不是一個對象,因此不能定義指向引用的指針。但指針是對象,所以存在對指針的引用。

int i=42;int *p=0;//p是一個int型指針int *&r=p;//r是一個對指針p的引用r=&i;//令p指向i*r=0;//令解引用r得到i,i=0;

面對一條比較復雜的指針或引用的聲明語句時,從右到左閱讀有助于弄清楚它的真實含義


const的引用:

常量引用僅對引用可參與的操作做出了限定,對引用的對象本身是不是一個常量未作限定。

const的指針:

指向常量的指針不能用于改變其所指對象的值。要想存放常量對象的地址,只能使用指向常量的指針。

const double pi=3.14;//pi是一個常量,值不能被改變double *ptr=&pi;//錯誤,ptr是一個普通的指針const double *cptr=&pi;//指向常量的指針指向一個常量對象*ptr=42;//錯誤,不能給*ptr賦值double dval=3.14;cptr=&dval;//正確,見note.

Note: 指向常量的指針沒有規定其所指對象必須是一個常量。所謂指向常量的指針僅僅要求不能通過該指針改變對象的值,而沒有規定那個對象的值不能通過其他途徑改變。

const指針

常量指針表示指針本身是一個常量,其必須初始化,而且一旦初始化完成,則它的值,也就是存放在指針中的那個地址就不能再改變。表示為* const,不變的是指針本身的值,而非指向的那個值。

int errNumb=0;int *const currErr=&errNumb;//currErr一直指向errNumbconst double pi=3.14159;const double *const pip=&pi;//pip是一個指向常量對象的常量指針*pip=2.172;//不能通過指針修改對象的值,因指向常量對象*curErr=0;//可以把curErr指針指向的對象重置,因其指向非常量對象。

頂層const表示指針本身是一個常量。

底層const表示指針所指對象是一個常量。

int i=0;int *const p1=&i;//頂層constconst int ci=42;//頂層constconst int *p2=&ci;//底層const

當執行對象的拷貝操作時,常量是頂層const還是底層const區別明顯。

頂層const不受什么影響。

i=ci;//正確p2=p3;//正確

當執行對象的拷貝操作時,拷入和拷出對象必須具有相同的底層const資格,或者兩個對象的數據類型必須能夠轉換。

int *p=p3;//錯誤,p3包含底層const的定義,而p沒有p2=p3;//正確p2=&i;//正確,int*能轉化成const int*int &r=ci;//錯誤,普通的int&不能綁定到int常量上const int &r2=i;//正確:const int&可以綁定到普通的int上

constexPR和常量表達式:

常量表達式是值不會改變并且在編譯過程就能得到計算結果的表達式。

我們允許將變量聲明為constexpr類型以便由編譯器來驗證變量的值是否是一個常量表達式。聲明為constexpr的變量一定是一個常量,而且必須用常量表達式初始化。

在constexpr聲明中如果定義一個指針,限定符constexpr僅對指針有效,與指針所指的對象無關。

const int *p=nullptr;//p是一個指向整型常量的指針constexpr int *q=nullptr;//q是一個指向整數的常量指針

需要注意的是,const是給定類型的修飾。當使用類型別名的時候,類型別名就是一個類型。

typedef char *pstring;//pstring是char*const pstring cstr=0;//cstr是指向char的常量指針const pstring *ps;//ps是一個指針,它的對象是指向char的常量指針

C++11新標準引入了auto類型說明符,用它就能讓編譯器替我們去分析表達式所屬的類型。

(1)推斷引用時,編譯器以引用對象的類型作為auto的類型。

(2)auto 一般會忽略掉頂層const,同時底層const則會保留下來。

(3)如果我們希望推斷出的auto類型是一個頂層const,需要顯式指出。


decltype類型指示符:選擇并返回操作數的數據類型。

decltype(f()) sum=x;//sum的類型就是函數f的返回類型。編譯器分析表達式并得到它的類型,卻不實際計算表達式的值

如果decltype使用的表達式是一個變量,則decltype返回該變量的類型(包括頂層const和引用在內)。

const int ci=0,&cj=ci;decltype(ci) x=0;//x的類型是const intdecltype(cj) y=x;//y的類型是const int&,y綁定到變量xdecltype(cj) z;//錯誤,z是一個引用,必須初始化。

如果decltype使用的表達式不是一個變量,則decltype返回表達式結果對應的類型。

int i=42,*p=&i,&r=i;decltype(r+0) b;//正確:加法的結果是int,因此b是一個(未初始化的)intdecltype(*p) c;//錯誤,c是int&,必須初始化。如果表達式的內容是解引用操作,則decltype將得到引用類型。

decltype((variable)) (注意是雙層括號)的結果永遠是引用,而decltype(variable)結果只有當variable本身就是一個引用時才是引用。

decltype((i)) d;//錯誤:d是int &,必須初始化decltype(i) e;//正確:e是一個(未初始化的)int

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色伦亚洲国产| 国产一区二区成人| 中文字幕久精品免费视频| 欧美性猛交xxxx富婆| 国产日韩av在线播放| 国产精品久久在线观看| 亚洲aa中文字幕| 精品久久久91| 国产成人自拍视频在线观看| 成人激情在线播放| 亚洲欧美精品一区二区| 久久九九国产精品怡红院| 色中色综合影院手机版在线观看| 国产91ⅴ在线精品免费观看| 欧洲午夜精品久久久| 亚洲第一区在线| 亚洲xxxx视频| 中文字幕精品在线视频| 一区二区三区天堂av| 96pao国产成视频永久免费| 久久国产精品偷| 91成人在线观看国产| 精品国产乱码久久久久久虫虫漫画| 亚洲香蕉成视频在线观看| 97视频在线观看免费高清完整版在线观看| 欧美亚洲日本黄色| 一区二区三区www| 91免费观看网站| 成人在线中文字幕| 国产福利成人在线| 亚洲第一精品久久忘忧草社区| 性欧美xxxx视频在线观看| 97在线精品视频| 久久久久北条麻妃免费看| 久久久久久久久久久亚洲| 亚洲精品美女网站| 精品久久国产精品| 午夜精品国产精品大乳美女| 欧美激情高清视频| 色噜噜久久综合伊人一本| 国产精品精品一区二区三区午夜版| 欧美野外猛男的大粗鳮| 成人免费在线视频网址| 奇米成人av国产一区二区三区| 一区二区亚洲精品国产| 日韩中文在线不卡| 亚洲r级在线观看| 日韩精品在线免费| 国产精品xxx视频| 日韩精品极品在线观看| 欧美日韩国产麻豆| 欧美老女人bb| 亚洲精品黄网在线观看| 国产精品成人品| 91av在线精品| 久久精品久久久久电影| 久久久久久亚洲精品| 精品高清一区二区三区| 亚洲自拍偷拍一区| 精品无人区太爽高潮在线播放| 日韩高清电影免费观看完整| 亚洲色在线视频| 7777精品久久久久久| 欧美在线观看日本一区| 成人在线小视频| 日韩亚洲欧美中文在线| 久久久久这里只有精品| 成人黄色短视频在线观看| 日韩精品欧美激情| 亚洲国产天堂久久国产91| 国产精品中文字幕久久久| 国产小视频国产精品| 美日韩精品免费观看视频| 久久久伊人欧美| 国产日产久久高清欧美一区| 国产精品91视频| 欧美日韩国产在线播放| 久久99精品久久久久久青青91| 性欧美xxxx视频在线观看| 欧洲亚洲女同hd| 久久频这里精品99香蕉| 7777kkkk成人观看| 亚洲91精品在线| 国产成人一区二区三区小说| 欧美极品少妇xxxxx| 亚洲精品成人久久电影| 久久精品国产精品亚洲| 麻豆精品精华液| 久久久精品免费视频| 国产精品高潮呻吟视频| 中文字幕免费精品一区| 国产日韩欧美在线看| 久久久久久久一区二区三区| 亚洲男人天堂古典| 欧美在线视频免费播放| www.欧美精品| 2018日韩中文字幕| 日韩暖暖在线视频| 青青草原成人在线视频| 97激碰免费视频| 欧美黄色成人网| 国模私拍一区二区三区| 日本亚洲精品在线观看| 欧美精品一区三区| 91av免费观看91av精品在线| 久久久久中文字幕2018| 久久天天躁狠狠躁夜夜av| 久久国产精品久久久| 国产在线98福利播放视频| 国产精品自产拍在线观看中文| 91精品久久久久久久久久另类| 久久精品视频播放| 亚洲国产第一页| 国产精品第1页| 日韩毛片中文字幕| 一区二区三区久久精品| 国产视频精品久久久| 奇门遁甲1982国语版免费观看高清| 日本一区二三区好的精华液| 精品久久久久久中文字幕大豆网| 欧美成人精品一区二区| 欧美性videos高清精品| 国产精品一区二区久久久| 久久久久这里只有精品| 国产精品麻豆va在线播放| 97香蕉超级碰碰久久免费软件| 美女啪啪无遮挡免费久久网站| 国产亚洲成av人片在线观看桃| 成人网在线视频| 亚洲人成电影网站色www| 亚洲区免费影片| 国产91在线播放精品91| 亚洲色图欧美制服丝袜另类第一页| 成人妇女免费播放久久久| 91精品视频在线播放| 国产一区二区三区欧美| 91成人在线播放| 亚洲a在线播放| 欧美日韩免费在线观看| 亚洲免费人成在线视频观看| 日韩一区二区欧美| 伊人亚洲福利一区二区三区| 国语自产偷拍精品视频偷| 亚洲偷欧美偷国内偷| 宅男66日本亚洲欧美视频| 日韩精品视频在线观看网址| 91日本视频在线| 日本电影亚洲天堂| 国产一区视频在线播放| 欧美日韩国产精品一区二区不卡中文| 精品国产欧美成人夜夜嗨| 日韩精品在线视频观看| 97香蕉超级碰碰久久免费的优势| 日韩av日韩在线观看| 精品成人乱色一区二区| 国产香蕉精品视频一区二区三区| 欧美精品在线观看91| 欧美激情亚洲另类| 久久国产精品久久精品| 97色伦亚洲国产| 国产精品第一页在线| 91地址最新发布| 成人黄色av网站| 久久亚洲影音av资源网|