求助,在C 中,如果p是指標,那麼p,0與p,NULL等價嗎

2021-03-21 12:07:35 字數 2689 閱讀 7058

1樓:金色潛鳥

根據 iso 定義,c++中 兩者是等價的,不同於c語言。

c語言 null 指標 定義成 (void *)0;

c++中 null 指標 定義成 整型常量 0 ,是右值.

c++ 的null 指標 iso specification (§4.10/1) 原文:

a null pointer constant is an integral constant expression rvalue of integer type that evaluates to zero.

c語言 iso 定義 (§6.3.2.3/3): 原文:

an integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. if a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to ***pare unequal to a pointer to any object or function.

2樓:這個名字怎樣

樓上說的不太好

在c++11之後,多了一個叫做nullptr的關鍵字 來替代空指標之前也不是用0來代替空指標的

用的是(char*)0

儘量不要用p=0這種做法 可能會有誤解

3樓:匿名使用者

等價null 的定義就是0

求助,在c++中,如果p是一個指標,那麼p!=0與p!=null等價嗎?

4樓:天漢凌霄

等價。但一般在應用中,表示式會是這樣:

if ( p ) 或者 if ( !p )

很少有人用if ( p == 0 )、if ( p != 0 )、if ( p != null )。

5樓:匿名使用者

是等價的!

因為在c++的編譯器當中會把一些預先的把一些特殊的字元常量進行預定義!

也就是說 null 在編譯器中 事先的把它定義為#define null 0;

也就是說當編譯器一遇到 null 這個字元常量的時候會自動的轉換成0;

希望對你能有幫助

6樓:匿名使用者

你知道巨集定義嗎

#define null 0

c語言編譯是先進行巨集,這時所有的 null 都被替換成 0就是說 p!==null 巨集後,就是:p!==0

7樓:文霞yi莉

是等價的,不過一般用後面的那個。還有它們的意思是指標沒有指向任何變數,是空指標,不知道樓主明白不?

8樓:匿名使用者

完全等價,沒啥可詳細的了

9樓:夢中睡客

是,在c++中規定null是0,所以這兩個是等價的

10樓:匿名使用者

等價,因為null是這樣來的:#define null 0

11樓:sky劉鴻飛

等價。因為一個指標最後一個地址無指向值

c語言中,p為指標,那麼*p和&p是一樣的嗎,有什麼區別呢?

在c++中有個p!=null是什麼意思

12樓:花生and奶牛

請看:在c中null是這樣定義的:

#difine null 0;

所以:p!=null表示p不等於空;

p!=0也表示p為空;

二者沒有什麼區別;

13樓:古月耳示明

null表示的是連結串列的結尾的意思。p!=null就是說p還沒指向連結串列結尾的意思

14樓:匿名使用者

p應該是個地址,所以*p應該是個指標,p!=null即這個指標有指向時。。。

15樓:匿名使用者

那個p是指標吧!! 代表p不為空的時候啊!!

在c語言中,null等不等於0?假設p是一個指標變數,if(p);和if(p!=null);這兩個

16樓:冰川和企鵝

對這個問題的回答與「等於」所指的意思有關。如果你是指「與。比較的結果為相等」,例如:

if(/* ... */)

else

/* ... */

if(p==0)

那麼null確實總是等於0,這也就是空指標定義的本質所在。

如果你是指「其儲存方式和整型值。相同」,那麼答案是「不」。null並不必須被存為一個整型值0,儘管這是null最常見的儲存方式。在有些計算機中,null會被存成另外一些形式。

如果你想知道null是否被存為一個整型值0,你可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果你將一個空指標強制轉換成整型別,那麼你所看到的很可能就是一個非零值)。

17樓:百度使用者

null意思是沒有定義任何內容 而0具有一定的數值意義

c語言中,p為指標,那麼p和p是一樣的嗎,有什麼區別呢

區別為 windows 7,中文名稱視窗7,是由微軟公司 microsoft 開發的作業系統,核心版本號為windows nt6.1。windows 7可供家庭及商業工作環境 膝上型電腦 平板電腦 多 中心等使用。c語言是比較基礎的程式語言,是學好組合語言的基礎,所以學好c語言很重要。在資訊工程中,...

c的雙指標在c中對應的寫法是怎樣的

一般可以採來用括號把想要轉源換的資料型別括起來放在值左邊.它實際上是讓編譯器 忘記型別檢查,把它看作其他型別 標準c 顯示轉換語法 static cast 非強制轉換,窄化轉化,void 強制變換const cast 對const,volatile進行轉換reinterpret cast 轉換為完全...

急求C語言,如果不定義行指標 p ,就只能一行一行輸出嗎

這樣行不行?源 可追問 請採納 include stdafx.h include void search int i,int p int main int argc,char argv int p p int a search 1,p return 0 不考慮越界的話 define c 4 void...