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

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

對(duì)C ++中的指針使用NULL或0(零)嗎?

對(duì)C ++中的指針使用NULL或0(零)嗎?

C++
皈依舞 2019-07-23 19:11:06
對(duì)C ++中的指針使用NULL或0(零)嗎?在C ++的早期,當(dāng)它被用螺栓固定在C之上時(shí),你不能使用NULL,因?yàn)樗欢x為(void*)0。你不能將NULL分配給除了之外的任何指針void*,這使得它變得毫無用處。在那些日子里,人們接受了你使用0(零)空指針。直到今天,我繼續(xù)使用零作為空指針,但我周圍的人堅(jiān)持使用NULL。我個(gè)人認(rèn)為給NULL現(xiàn)有值的名稱()沒有任何好處- 因?yàn)槲乙蚕矚g將指針測(cè)試為真值:if (p && !q)   do_something();然后使用零更有意義(如果你使用NULL,你不能邏輯使用p && !q- 你需要明確比較NULL,除非你假設(shè)NULL是零,在這種情況下為什么使用NULL)。有沒有客觀的理由偏好零而不是NULL(反之亦然),或者只是個(gè)人偏好?編輯:我應(yīng)該添加(并且最初要說)使用RAII和異常,我很少使用零/ NULL指針,但有時(shí)你確實(shí)需要它們。
查看完整描述

3 回答

?
元芳怎么了

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

有一些論點(diǎn)(其中一個(gè)是相對(duì)較新的),我認(rèn)為這與Bjarne的立場(chǎng)相矛盾。

  1. 意圖文件

使用NULL允許搜索它的使用,它還強(qiáng)調(diào)開發(fā)人員想要使用NULL指針,無論編譯器是否正在解釋它NULL。

  1. 指針和'int'的重載相對(duì)較少

每個(gè)人引用的例子是:

void foo(int*);void foo (int);void bar() {
  foo (NULL);  // Calls 'foo(int)'}

但是,至少在我看來,上面的問題并不是我們對(duì)空指針常量使用NULL,而是我們有'foo'的重載,它們采用了不同類型的參數(shù)。參數(shù)也必須是一個(gè)int,因?yàn)槿魏纹渌愋投紩?huì)導(dǎo)致模糊調(diào)用,因此生成一個(gè)有用的編譯器警告。

  1. 分析工具可以幫助今天!

即使在沒有C ++ 0x的情況下,現(xiàn)在還有一些工具可以驗(yàn)證是否NULL用于指針,并且0用于整數(shù)類型。

  1. C ++ 11將有一個(gè)新std::nullptr_t類型。

這是該表的最新參數(shù)。C ++ 0x 的問題0NULL正在積極解決,你可以保證,對(duì)于提供的每個(gè)實(shí)現(xiàn)NULL,他們將要做的第一件事是:

#define NULL  nullptr

對(duì)于那些誰(shuí)使用NULL,而不是0,這種變化將在很少或根本沒有力氣類型安全性的提高-如果有的話,還可以趕上他們已經(jīng)使用了一些錯(cuò)誤NULL0。對(duì)于0今天使用的任何人......呃......希望他們對(duì)正則表達(dá)有很好的了解......


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
慕的地8271018

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

我很久以前就停止使用NULL(和大多數(shù)其他宏一樣)。我這樣做不僅是因?yàn)槲蚁氡M可能地避免使用宏,而且因?yàn)镹ULL似乎已經(jīng)在C和C ++代碼中被過度使用了。它似乎只在需要0值時(shí)使用,而不僅僅是指針。

在新項(xiàng)目中,我將其放在項(xiàng)目標(biāo)題中:

static const int nullptr = 0;

現(xiàn)在,當(dāng)符合C ++ 0x的編譯器到達(dá)時(shí),我所要做的就是刪除該行。這樣做的一個(gè)很好的好處是Visual Studio已經(jīng)將nullptr識(shí)別為關(guān)鍵字并適當(dāng)?shù)赝怀鲲@示它。


查看完整回答
反對(duì) 回復(fù) 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 715 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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