1. 程式人生 > >淺談NULL、0、(void *)0

淺談NULL、0、(void *)0

一般C中都用巨集定義 #define NULL  0
#define NULL  ((
void*0)

用NULL來表示一些無效的返回值,特別是返回無效指標。比如fopen函式,malloc函式等。

0是一個很特別的數,不僅是整數0,而且還有很多特別的意義,比如上面中就用0表示一個無效的地址。對地址為0的任何操作都是未定義的(undefined),就是說不能預料會有什麼樣的結果。C串結尾也是以整數0結尾,這個整數0是一個位全零的位元組,該位元組即使8位的整數同時也是ASCII碼中的0。

由於C++中對型別轉換做了很多的改進,所以C++就沒有#define (void *)0了。

因為這些巨集定義都是在標頭檔案中的,嚴格的說不算是C/C++的標準的部分,但是用得人多了就算準標準了。

相關推薦

NULL0void *0

一般C中都用巨集定義 #define NULL  0#define NULL  ((void*) 0) 用NULL來表示一些無效的返回值,特別是返回無效指標。比如fopen函式,malloc函式等。 0是一個很特別的數,不僅是整數0,而且還有很多特別的意義,比如上面中就用

A1—JavaScript中的原型

js原型是什麽?想要了解這個問題,我們就必須要知道對象。對象根據w3cschool上的介紹:對象只是帶有屬性和方法的特殊數據類型。我們知道,數組是用來描述數據的。其實呢,對象也是用來描述數據的。只不過有一點點的區別,那就是數組的下標只能是數字。所以,數組最好只用來裝同樣意義的內容。比如說[1,2,3,4,5]

分布式事務

back 微服務 目的 light ber message values 及其 環境 現今互聯網界,分布式系統和微服務架構盛行。一個簡單操作,在服務端非常可能是由多個服務和數據庫實例協同完成的。在一致性要求較高的場景下,多個獨立操作之間的一致性問題顯得格外棘手。基

我的MongoDB學習

如果 自動 淺談 查詢 技術分享 刪除 insert 工作經歷 posit   上一篇簡單講了mongodb的安裝,mongo的windows服務安裝,這樣服務器重啟windows服務會自動重啟mongodb的server,然後我們就可以用客戶端去管理數據了。mongod

自學Python之路day1

簡單 程序 odi odin 限制次數 變量類型 第一個程序 構造 welcom 2018-02-19 17:15:14 Python語言相對於其他語言較為簡潔,也相對好入門比如後面不加分號,基本見不著大括號等優點 第一個程序,也是學每門語言都需要掌握的第一個代碼

分詞算法1分詞中的基本問題

最短 hub 好的 說明 可能 漢語 等等 http ring [TOC] 前言 分詞或說切詞是自然語言處理中一個經典且基礎的問題,在平時的工作中也反復的接觸到分詞問題,用到了不同的模型,不同的方法應用在各個領域中,所以想對分詞問題做一個系統的梳理。大多數分詞問題主要是針對

協方差矩陣

但是 資料 sample 可能 tlab 原來 data- 一個 處理 原文地址:http://pinkyjie.com/2010/08/31/covariance/ 今天看論文的時候又看到了協方差矩陣這個破東西,以前看模式分類的時候就特困擾,沒想到現在還是搞不清楚,索性開

演算法,一些感悟1

最近看到好幾個同學在學演算法,看了一些書,另外跟一個演算法較好的同學討論了一下,若有所悟,作此文,以求各位大神指教; 現在看到好多同學學演算法,可是,事實上看起來,真正明白理解了演算法是一種什麼東西的極少,很多都是為了參加ACM而去學演算法,並沒有對演算法有真正意義上的研究,甚至說,他們拿到了ACM的入場

PHP面向物件程式設計

9.0 設計模式   在編寫程式時經常會遇到一此典型的問題或需要完成某種特定需求,設計模式就是針對這些問題和需求,在大量的實踐中總結和理論化之後優選的程式碼結構程式設計風格,以及解決問題的思考方式。 設計模式就像是經典的棋譜。不同的棋局,使用不同的棋諧,免得自己再去思考和模索。本節將針對PHP應用程式

PHP面向物件程式設計

5.0 繼承   5.1 繼承的概念      在現實生活中,繼承一般指的是子女繼承父輩的財產。在程式中,繼承描述的是事物之間的所屬關係,通過繼承可以使許多事物之間形成一種關係體系 。     例如貓和狗都屬於動物,程式中便可以描述為貓和

PHP面向物件程式設計

7.0 抽象類與介面   當定義一個類時,常常需要定義一些方法來描述該類的行為特徵、但有時這些方法的實現方式是無法確定的,此時就可以使用抽象類和介面。 抽象類和介面用於提高程式的靈活性、抽象類是一種特殊的類,而介面又是一種待殊的抽象類。 接下來本節將針對抽象類和介面進行詳細講解。 7.

PHP面向物件程式設計

6.0 自動載入及魔術方法    6.1 自動載入 在PHP開發過程中,如果希望從外部引入一個class.通常會使用incluae和requre方法把定義這個class的檔案包含進來。但是,在大型的開發專案中,這麼做會產生大量的require或者include方法的使用。這樣不僅

PHP面向物件程式設計

和一些面向物件的語言有所不同,PHP並不是一種純面向物件的語言,包PIP它支援面向物件的程式設計,並可以用於開發大型的商業程式。因此學好面向物件輸程對PHP程式設計師來說也是至關重要的。本章並針對面向物件程式設計在PIP語言中的使用進行詳細講解。 2.1 面向物件概述   面向物件是一種符

PHP面向物件程式設計

傳統的面向過程   將要完成的工作,分作若干個步驟,或再細分為子步驟,然後後步驟從前往後一步一步完成,最初達致目標。 現代的面向物件   將要完成的工作拆分為“一個一個物件”的任務(功能),每個物件獨自完成自己的任務,任務之間的連結通過“呼叫”來實現,最終也完成了整體的工

kubernetes service 那些事 下篇

歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 五、K8s 1.8 新特性——ipvs ipvs與iptables的效能差異 隨著服務的數量增長,IPTables 規則則會成倍增長,這樣帶來的問題是路由延遲帶來的服務訪問延遲,同時新增或刪除一條規則也有較大延遲。不同規模下,kube-proxy新增一條

腳本化css之方塊運動函數

-c containe cti var eight lan abs print clas 我們可以寫一個讓小方塊運動的函數: 1 div#demo { 2 width: 100px; 3 height: 100; 4 p

通信網絡——TCP層

定義 停止 取值 引入 發現 上層 序號 完成 最大 需求: 通信的本質是進行信息的傳遞,而我們希望達到的效果總結起來就兩點:快而準。 背景: 基於TCP/IP協議,運行在IP層上的流量將變得不可靠,無法僅僅靠IP層技術保障數據包的準確傳達。 TCP協議 由此誕生了TCP協

Bootstrap學習第一章介紹

<!-- 作者:SimpleWu 時間:2018-09-17 描述:Bootstrap之初體驗 --> <!DOCTYPE html> <html> <head> <meta charse

排序演算法的效率Java筆記

首先:咱也借用一下網上的那張XXX的圖,咯!在下面: 接下來,就是咱的驗證時間了(驗證什麼?當然是各種演算法的時間複雜度比較咯),沒什麼好說的了,直接上碼吧。 程式碼實現: import java.util.Arrays; public class SortSum

自己理解的socket1

一、socket是什麼? Socket是程序通訊的一種方式,即呼叫這個網路庫的一些API函式實現分佈在不同主機的相關程序之間的資料交換。 因此可以socket這種方式實現程序間的通訊。 二、客戶端服務