国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言和C++中的空指針區(qū)別

這篇具有很好參考價值的文章主要介紹了C語言和C++中的空指針區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C語言中,空指針是NULL,是一個宏

在C++中NULL似乎也可以用,但是C++中的NULL其實是有問題的。C++大佬在設(shè)計的時候可能沒有考慮全面

在C++98中,字面常量0既可以是一個整形數(shù)字,也可以是無類型的指針(void*)常量

但是編譯器默認情況下 將其看成是一個整形常量,如果要將其按照指針方式來使用,必須對其進行強轉(zhuǎn)(void *)0。

看一下在C++中NULL的定義

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

可以看到,NULL在C++中其實就是 0

在C語言中才是(void*)0,即空指針

所以C++如果用NULL做空指針,就會出現(xiàn)這種情況

//f函數(shù)構(gòu)成函數(shù)重載
void f(int)
{
 	cout<<"f(int)"<<endl;
}
void f(int*)
{
 	cout<<"f(int*)"<<endl;
}

int main()
{
    int* p = NULL;
    f(NULL);//調(diào)用 f(int)
    f(0);// 調(diào)用f(int)
    f(p);// 調(diào)用f(int*)
    
    /* 顯然,f(NULL)我們本想調(diào)用 f(int*)
    但是卻調(diào)用成了 f(int) */
    return 0;
}

所以為了補C++的坑,C++11中引入了nullptr作為空指針

注意文章來源地址http://www.zghlxwxcb.cn/news/detail-824348.html

  1. 在使用nullptr表示指針空值時,不需要包含頭文件,因為nullptr是C++11作為新關(guān)鍵字引入的
  2. C++11中,sizeof(nullptr)sizeof((void*)0)所占的字節(jié)數(shù)相同

到了這里,關(guān)于C語言和C++中的空指針區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • c語言函數(shù)指針和指針函數(shù)的區(qū)別,以及回調(diào)函數(shù)的使用。

    c語言函數(shù)指針和指針函數(shù)的區(qū)別,以及回調(diào)函數(shù)的使用。

    函數(shù)指針 是什么,函數(shù)指針本質(zhì)也是指針,不過是指向函數(shù)的指針,存儲的是函數(shù)的地址。 指針函數(shù) 是什么,指針函數(shù)其實就是返回值是指針的函數(shù),本質(zhì)是函數(shù)。 函數(shù)指針是如何定義的呢,如下 這里 * pfun 需要 加括號 ,否則定義為了指針函數(shù)。 指針函數(shù)的定義如下: 下面

    2024年02月11日
    瀏覽(20)
  • 一個問題來對比文心一言和chatgpt

    問題: 請注意, 孩子不會說話,他無法用語言來回復(fù)媽媽的問題, 請生成以下劇本:一個媽媽和一歲不會說話的嬰兒的日常vlog的劇本 文心一言 場景一:早晨 (媽媽和孩子在客廳里醒來) 媽媽:早上好,寶貝。 孩子:早上好,媽媽。 媽媽:你昨晚睡得好嗎? 孩子:我很

    2024年02月09日
    瀏覽(18)
  • C++引用的相關(guān)定義以及使用場景與指針之前的區(qū)別

    C++引用的相關(guān)定義以及使用場景與指針之前的區(qū)別

    ??博客主頁: 主頁 ??系列專欄: C++ ??感謝大家點贊??收藏?評論?? ??期待與大家一起進步! 引用不是新定義一個變量,而是給已存在變量取了一個別名,編譯器不會為引用變量開辟內(nèi)存空間,它和它引用的變量共用同一塊內(nèi)存空間。 引用的特性: 引用在定義時必

    2024年02月03日
    瀏覽(27)
  • 挖數(shù)據(jù)平臺的空號檢測接口:識別實時手機號碼中的空號問題

    挖數(shù)據(jù)平臺的空號檢測接口:識別實時手機號碼中的空號問題

    ? 在當今數(shù)字化的時代,手機號碼已經(jīng)成為了人們生活中不可或缺的一部分。然而,隨著通信技術(shù)的不斷發(fā)展,以及用戶需求的增長,諸如手機號碼質(zhì)量問題的挑戰(zhàn)也越來越明顯。為了解決這個問題,挖數(shù)據(jù)平臺推出了一項空號檢測接口,旨在實時識別并過濾掉手機號碼中的

    2024年04月22日
    瀏覽(23)
  • Python 去除列表中的空值

    Python 去除列表中的空值

    要在Python中去除列表中的空值,可以使用以下代碼示例。 這段代碼定義了一個名為 remove_empty_values 的函數(shù),它接受一個輸入列表,并使用列表推導(dǎo)式過濾掉了所有的空值。最后,它返回一個不包含空值的新列表。 補充方法: 使用Python的 filter() 函數(shù),將一個lambda函數(shù)應(yīng)用于原

    2024年02月06日
    瀏覽(20)
  • Dart 語言的空安全特性

    空安全是Dart 2.12版本新增的一項特性,可以有效地避免空指針異常的出現(xiàn)。事實上,空安全特性并不是Dart獨有的,Kotlin、Swift、C#、TypeScript等語言都有此特性。在Dart語音中,空安全支持三條核心原則: ? 默認不可空:除非將變量顯式聲明為可空,否則它默認一定是要是非空

    2024年02月07日
    瀏覽(17)
  • 【是C++,不是C艸】 引用的概念 | 引用的使用 | 引用與指針的區(qū)別

    【是C++,不是C艸】 引用的概念 | 引用的使用 | 引用與指針的區(qū)別

    ???? 歡迎來到 Claffic 的博客 ???? ? ??? 專欄: 《是C++,不是C艸》?? 前言: 前面帶大家學(xué)習(xí)了函數(shù)重載等C++基礎(chǔ),這期繼續(xù)C++基礎(chǔ)的學(xué)習(xí):引用。 注: 你最好是學(xué)完了C語言,并學(xué)過一些初階的數(shù)據(jù)結(jié)構(gòu)。 (沒有目錄) ヽ( ̄ω ̄( ̄ω ̄〃)ゝ? 不知道大家聽沒聽過這個梗

    2024年02月03日
    瀏覽(18)
  • C++中的智能指針是什么

    C++是一種廣泛使用的編程語言,它允許程序員使用動態(tài)分配的內(nèi)存。然而,手動管理內(nèi)存可能會導(dǎo)致一些嚴重的問題,如內(nèi)存泄漏和懸空指針。為了解決這些問題,C++引入了智能指針的概念。智能指針是一種特殊的指針類型,它可以自動管理內(nèi)存并確保在不需要時釋放內(nèi)存。

    2024年02月02日
    瀏覽(47)
  • C++中的引用及指針變量

    目錄 1.1 C++中的引用 1.2 C++中的指針變量(pointer) 1.1 C++中的引用 C++中的引用(reference)是一種特殊的變量,它是某個已存在變量的另一個名字。引用變量與指針變量類似,但引用變量必須在聲明時進行初始化,并且一旦引用變量與某個變量關(guān)聯(lián)起來,就無法再與其他變量關(guān)

    2024年01月20日
    瀏覽(26)
  • 【C++那些事兒】函數(shù)重載與C++中的“指針“——引用

    【C++那些事兒】函數(shù)重載與C++中的“指針“——引用

    君兮_的個人主頁 即使走的再遠,也勿忘啟程時的初心 C/C++ 游戲開發(fā) Hello,米娜桑們,這里是君兮_,我之前看過一套書叫做《明朝那些事兒》,把本來枯燥的歷史講的生動有趣。而C++作為一門接近底層的語言,無疑是抽象且難度頗深的。我希望能努力把抽象繁多的知識講的生

    2024年02月08日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包