第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

const int *,const int * const和int const *之間有什么區(qū)別?

const int *,const int * const和int const *之間有什么區(qū)別?

鴻蒙傳說(shuō) 2019-05-25 15:51:57
const int *,const int * const和int const *之間有什么區(qū)別?我總是搞砸了怎么用const int*,const int * const和int const *正確的。是否有一套規(guī)則定義了您能做什么和不能做什么?我想知道在任務(wù),傳遞到職能等方面所做的所有事情和所有不應(yīng)做的事情。
查看完整描述

4 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

向后讀(由順時(shí)針/螺旋規(guī)則驅(qū)動(dòng)):

  • int* - 指向int的指針

  • int const * - 指向const int的指針

  • int * const - const指向int的指針

  • int const * const - const指向const int的指針

現(xiàn)在第一個(gè)const可以在類(lèi)型的任何一側(cè),所以:

  • const int * == int const *

  • const int * const == int const * const

如果你想變得非常瘋狂,你可以做這樣的事情:

  • int ** - 指向int的指針

  • int ** const - 指向int的指針的const指針

  • int * const * - 指向int的const指針的指針

  • int const ** - 指向const int指針的指針

  • int * const * const - 指向int的const指針的const指針

  • ...

并確保我們清楚const的含義

const int* foo;int *const bar; //note, you actually need to set the pointer 
                //here because you can't change it later ;)

foo是一個(gè)指向常量整數(shù)的變量指針。這使您可以更改指向的內(nèi)容,但不能更改指向的值。大多數(shù)情況下會(huì)看到C風(fēng)格的字符串,其中有一個(gè)指向a的指針const char。您可以更改指向的字符串,但不能更改這些字符串的內(nèi)容。當(dāng)字符串本身位于程序的數(shù)據(jù)段中且不應(yīng)更改時(shí),這很重要。

bar是一個(gè)指向可以更改的值的常量或固定指針。這就像沒(méi)有額外語(yǔ)法糖的參考。因?yàn)檫@個(gè)事實(shí),通常你會(huì)使用一個(gè)你將使用T* const指針的引用,除非你需要允許NULL指針。


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

我想這里已經(jīng)回答了所有問(wèn)題,但我只想補(bǔ)充一點(diǎn),你應(yīng)該小心typedefs!它們不僅僅是文本替換。

例如:

typedef char *ASTRING;const ASTRING astring;

類(lèi)型astringchar * const,而不是const char *。這是我總是傾向于放在const類(lèi)型右側(cè)的一個(gè)原因,而不是從一開(kāi)始。


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

幾乎所有人都指出:

有什么區(qū)別const X* p,X* const pconst X* const p?

你必須從右到左閱讀指針聲明。

  • const X* p 表示“p指向一個(gè)常數(shù)為X的X”:不能通過(guò)p更改X對(duì)象。

  • X* const p 表示“p是指向非const的X的const指針”:您不能更改指針p本身,但可以通過(guò)p更改X對(duì)象。

  • const X* const p 表示“p是指向X的常量指針”:您不能更改指針p本身,也不能通過(guò)p更改X對(duì)象。


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

  1. 常量參考:

    對(duì)變量(此處為int)的引用,它是常量。我們主要將變量作為引用傳遞,因?yàn)橐玫拇笮⌒∮趯?shí)際值,但是存在副作用,這是因?yàn)樗拖駥?shí)際變量的別名。我們可能會(huì)通過(guò)完全訪問(wèn)別名來(lái)意外更改主變量,因此我們將其設(shè)置為常量以防止此副作用。

    int var0 = 0;const int &ptr1 = var0;ptr1 = 8; // Errorvar0 = 6; // OK
  2. 常量指針

    一旦常量指針指向變量,它就不能指向任何其他變量。

    int var1 = 1;int var2 = 0;int *const ptr2 = &var1;ptr2 = &var2; // Error
  3. 指向常數(shù)的指針

    一個(gè)指針,通過(guò)它可以不改變它指向的變量的值,這個(gè)指針?lè)Q為指向常量的指針。

    int const * ptr3 = &var2;*ptr3 = 4; // Error
  4. 指向常量的常量指針

    指向常量的常量指針是一個(gè)指針,既不能改變它指向的地址,也不能改變保存在該地址的值。

    int var3 = 0;int var4 = 0;const int * const ptr4 = &var3;*ptr4 = 1;     // Error
     ptr4 = &var4; // Error


查看完整回答
反對(duì) 回復(fù) 2019-05-25
  • 4 回答
  • 0 關(guān)注
  • 1518 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)