C++中NULL等于啥

文章目錄

      • **一、`NULL` 的標準定義**
      • **二、常見實現方式**
        • 1. **定義為整數 `0`**
        • 2. **定義為 `0L` 或 `(void*)0`**(較少見)
      • **三、與C語言的關鍵區別**
      • **四、`NULL` 在C++中的問題**
        • 1. **重載函數匹配歧義**
        • 2. **模板參數推導錯誤**
      • **五、C++11+ 的替代方案:`nullptr`**
      • **六、最佳實踐**
      • **七、總結**

在C++中, NULL 的定義與行為需要結合語言標準和實際實現來理解。以下是詳細解析:

一、NULL 的標準定義

C++標準(如C++20 §17.2)規定:

The macro NULL is defined as a null pointer constant.

NULL 是一個預處理宏,其值為空指針常量。但標準并未強制規定其具體實現方式,而是留給編譯器自由選擇。

二、常見實現方式

1. 定義為整數 0

大多數C++編譯器(如GCC、Clang)將 NULL 定義為:

#

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89940.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pyhton基礎【20】面向對象進階一

目錄 一.進階 類方法和靜態方法 屬性(Properties) 繼承和多態 抽象基類(Abstract Base Classes - ABCs) 魔術方法(Magic Methods) 組合和聚合 使用場景 二.私有屬性 實現對數據的隱藏 設置私有屬性 添加額外對屬性操作的方法 三.私有方法 實現對方法的隱藏 直接…

滲透信息收集- Web應用漏洞與指紋信息收集以及情報收集

目錄 1. 整體流程與目標概述 2. 常用工具及其用途 2.1 掃描與枚舉工具 2.2 情報與數據聚合工具 2.3 流量攔截與手工驗證工具 3. 詳細技術手法與步驟 3.1 準備階段 3.2 主動掃描與指紋識別 3.3 數據交叉驗證與漏洞確認 3.4 進一步滲透與隱蔽操作 4. 實際工作經驗與注…

ASP.NET代碼審計 MVC架構 SQL注入漏洞n

接口路由 /Maintenance/GetMaintenanceList MaintenanceController.cs代碼 Maintenance 控制器里面的 GetMaintenanceList 方法 接收參數 id 傳進 MaintenanceManager.GetMaintenanceList 方法調用 MaintenanceManager.cs代碼 這里 id 和 faultId 不一樣是不影響的 C# 按順序匹…

Python入門Day4

Python中數據的常用操作 數據拷貝 根據以下代碼可以看出l1和l2實際上都是對于數據的引用,當l1被改變了,l2也會發生同樣的改變,l2 l1只是將l2指向了l1所指向的地址。 >>> l1 [1,2,[3,4],[5,6]] >>> l2 l1 >>>…

計算機網絡中的常用表項梳理

核心表項對比 表項 全稱 工作層級 主要功能 涉及設備 典型生命周期 MAC表 媒體訪問控制表 數據鏈路層(二層) Mac地址和端口關系 交換機、網橋 動態學習 FDB表 轉發數據庫 (Forwarding DataBase) 數據鏈路層&#xf…

百度輪崗:任命新CFO,崔珊珊退居業務二線

文 | 大力財經2025 年 7 月 1 日,百度組織再次變革,崔珊珊退居二線引發的行業關注。百度創始人李彥宏發布的內部信,宣布的新一輪組織調整里,崔珊珊退居二線這一變動,格外引人矚目。崔珊珊,這位在百度人力資…

TAMPER-RTC(STM32F103) 引腳說明

我來查看ST官方手冊中關于TAMPER-RTC引腳的具體說明。 Ran tool Ran tool Ran tool Read file: doc/STM32F103VGT6/STM32F103VGT6_specification.txt Read file: doc/STM32F103VGT6/STM32F103VGT6_specification.txt Ran tool Read file: doc/STM32F103VGT6/STM32F103VGT6_spec…

BUUCTF在線評測-練習場-WebCTF習題[極客大挑戰 2019]HardSQL1-flag獲取、解析

解題思路 打開靶場、熟悉的感覺 上次是過濾了很多字符,用了雙寫繞過進行注入即可,這次進階了難度 先老規矩判斷下閉合 11 123 報錯提示 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version…

MyBatis動態SQL進階:復雜查詢與性能優化實戰

引言 在復雜業務場景中&#xff0c;SQL查詢往往需要動態拼接條件、復用代碼片段&#xff0c;并支持批量操作。MyBatis的動態SQL功能提供了強大的解決方案&#xff0c;本文將深入解析<choose>條件分支、<sql>片段復用、批量操作優化等核心技巧&#xff0c;助你寫出高…

@Transactional 注解失效的場景及原因分析

先分析一下 1&#xff0c;內部調用&#xff0c;原對象調用&#xff0c;不是代理對象調用 2&#xff0c;private方法&#xff0c;源碼中&#xff0c;只能是public方法 3&#xff0c;異常被捕獲了&#xff0c;事物攔截器&#xff0c;無法感知 4&#xff0c;子線程調用&#x…

使用unity創建項目,進行動畫制作

1. 創建unity項目 error: error CS0006: Metadata file Library/PackageCache/com.unity.collab-proxy2.8.2/Lib/Editor/PlasticSCM/log4netPlastic.dll could not be found error CS0006: Metadata file Library/PackageCache/com.unity.collab-proxy2.8.2/Lib/Editor/Plasti…

Centos系統及國產麒麟系統設置自己寫的go服務的開機啟動項完整教程

1、創建服務文件 在 /etc/systemd/system/ 下新建服務配置文件&#xff08;需sudo權限&#xff09;&#xff0c;例如&#xff1a; sudo nano /etc/systemd/system/mygo.service 如下圖&#xff0c;創建的mygo.service 2、創建內容如下&#xff1a; DescriptionThe go HTTP a…

Java面試寶典: IO流

1. 下面哪個流類屬于面向字符的輸入流() 選項: A. BufferedWriter B. FileInputStream C. ObjectInputStream D. InputStreamReader 答案:D 詳細分析: 字符流與字節流的本質區別: 字符流(Character Streams)以Unicode字符為單位操作數據,適用于文本處理字節流(Byte…

黑馬python(二十五)

目錄&#xff1a;1.數據輸出-輸出為Python對象2.數據輸出-輸出到文件中3.綜合案例1.數據輸出-輸出為Python對象2.數據輸出-輸出到文件中移動文件到文件夾&#xff1a;生成了好多文件&#xff0c;因為Rdd是有分區的 &#xff0c;會把數據分散到各個分區去存儲&#xff0c;因為電…

【LeetCode 熱題 100】41. 缺失的第一個正數——(解法一)暴力解

Problem: 41. 缺失的第一個正數 題目&#xff1a;給你一個未排序的整數數組 nums &#xff0c;請你找出其中沒有出現的最小的正整數。 請你實現時間復雜度為 O(n) 并且只使用常數級別額外空間的解決方案。 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(N log N)…

在運行 Laravel Sail 前,需安裝 Docker Desktop 并完成基礎配置/具體步驟

一、安裝 Docker Desktop&#xff08;必備環境&#xff09; Windows 系統 &#xff08;windows安裝包 有兩個版本&#xff09; 架構版本查看 1. Win R? 輸入 ?cmd? 打開命令提示符&#xff1b; 2. ?輸入命令?&#xff1a; bash echo %PROCESSOR_ARCHITECTURE% 3. ?結果…

AI 應用于進攻性安全

一、引言 大語言模型&#xff08;LLM&#xff09;和 AI 智能體的出現推動進攻性安全變革&#xff0c;其在偵察、掃描、漏洞分析、利用、報告五個階段展現出數據分析、代碼生成、攻擊場景規劃等能力&#xff0c;能提升安全團隊效率與擴展性&#xff0c;但存在 “幻覺” 等局限性…

微控制器中的EXTI0(External Interrupt 0)中斷是什么?

微控制器中的EXTI0(External Interrupt 0)中斷是什么? EXTI0(External Interrupt 0) 是微控制器(如STM32等ARM Cortex-M系列芯片)中的一個外部中斷線,專門用于處理來自特定GPIO引腳的外部信號觸發中斷。以下是詳細說明: 1. 基本概念 EXTI(External Interrupt/Event …

EasyGBS平臺內置AI算法了,算法成為了視頻平臺的標配

今年五一的時候立了個flag&#xff08;《國標GB28181平臺EasyGBS未來研發方向在哪&#xff1f;》&#xff09;&#xff0c;我想不能再局限在只是滿足于傳統視頻平臺的功能&#xff0c;傳統的EasyGBS也就是接入幾種視頻協議&#xff0c;什么RTSP、ONVIF、RTMP、GB28181這些&…

C# 常量與變量

在 C# 中&#xff0c;常量和變量是存儲數據的基本方式&#xff1a; // 常量&#xff1a;使用 const 關鍵字聲明&#xff0c;必須在聲明時初始化&#xff0c;且值不能改變 const double Pi 3.14159; const string Message "Hello, World!"; ? // 變量&#xff1a;…