1樓:浪子惟安
null是c語言中的巨集復定義,其值為0.
也就制是說int* num = null和int* num = 0;
二者的含義是相同bai
的。du
其目的在於,0這個地址在操作zhi系統中是隻讀的dao,當你嘗試訪問的時候會阻止你
但是有些地址不是隻讀的,如果一個指標指向了這個地址,你又在不經意間修改了它
可能會導致一些重要的檔案被修改,所以指標初始化成null是有必要的但是話說回來,現在的作業系統都有段保護機制,即使你不初始化成null,也不會讓你隨便訪問其他地址的,初始化成null可以讓你在除錯的時候,清晰的看出來你是否曾經對它賦值
2樓:匿名使用者
把指標置空,避免出現問題
c語言中null是什麼意思
3樓:
在c語言中,
null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值
對於字串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字串的結尾,不是指標,也不是普通的數值
在不同的系統中,
null並非總是和0等同,null僅僅代表空值,也就是指向一個不被使用的地址,在大多數系統中,都將0作為不被使用的地址,所以就有了類似這樣的定義
#define null 0
但並非總是如此,也有些系統不將0地址作為null,而是用其他的地址,所以說,千萬別將null和0等價起來,特別是在一些跨平臺的**中,這更是將給你帶來災難。
4樓:匿名使用者
null 就是一個特殊的指標值, 其實本質是一個巨集#define null (void *)0也就是0值, 強制轉成了指標。
用來表示一個指標非法。 所以在初始化的時候經常用null來初始化。
由於是非法指標, 所以對這個指標取值(*操作)會導致程式崩潰。 必須要先指向一個有效空間才可以。
5樓:匿名使用者
c語言null定義,定義如下:
#undef null
#if defined(__cplusplus)#define null 0
#else
#define null ((void *)0)#endif
所以我覺得,如果一個指標被賦予null,應該就相當於這個指標執行了0x0000這個邏輯地址,但是c語言中0x0000這個邏輯地址使用者是不能使用的(有些人說是因為0x0000沒有對映到實體地址,也有人說是因為0x0000對映到的地址是作業系統用於判斷野指標的,我也不太懂,總之就是使用者不能使用啦),所以當你試圖取一個指向了null的指標的內容時,就會提示段錯誤,聽著有點繞,看程式:
int *node=null;
int a=0;
a=*node;
printf("%d\n",a);
由於node執行的是null,也就是邏輯地址0x0000,而這個地址用於是不能訪問的,所以編譯器提示段錯誤。
6樓:樂跑小子
在標頭檔案 中 定義的一個常量 null=0;
用於指將指標 懸空(不指向任何位置)樓上的指向0記憶體不對的.
int *p=null;
null是個好東西,給一出生的指標一個安分的家
null不是被定義為0,就是被定義為(void *)0,這兩種值幾乎是相同的。當程式中需要一個指標時(儘管編譯程式並不是總能指示什麼時候需要一個指標),一個純粹的零或者一個void指標都能自動被轉換成所需的任何型別的指標。
null總是等於0嗎?
對這個問題的回答與「等於」所指的意思有關。如果是指「與。比較的結果為相等」,例如:
if(/* ... */)
else
/* ... */
if(p==0)
那麼null確實總是等於0,這也就是空指標定義的本質所在。
如果是指「其儲存方式和整型值。相同」,那麼答案是「不」。null並不必須被存為一個整型值0,儘管這是null最常見的儲存方式。在有些計算機中,null會被存成另外一些形式。
如果想知道null是否被存為一個整型值0,可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果將一個空指標強制轉換成整型別,那麼=所看到的很可能就是一個非零值)。
7樓:育知同創教育
null,本意是"空的;元素只有零的"意思。計算機中通常表示空值,無結果,或是空集合。
null指標是一個無型別指標,並且值為0。一個指標,擁有2個屬性--地址值和指標型別。兩者的作用是:
1,地址值標識變數的首地址(32位系統下指標的地址值佔4位元組);2,指標型別告訴編譯器,應該怎樣進行接下來的資料訪問(int型陣列和float型陣列是不同的;陣列訪問與結構體訪問也是不同的;等等)。
8樓:66666順心
空的意思,其實不太好說明白!如果分配記憶體分配失敗如:
#include
#include
int main()
如果分配記憶體分配失敗,malloc函式就會返回一個null給p
9樓:陽光沒有眼睛
可以的null別定義為
#define null ((void *)0)
'\0'是字元,ascii是0
10樓:匿名使用者
c語言中null的意思就是空格的意思,用到的很多
11樓:高金山
#define null ((void*)0)
其值是0,但意義是空指標
'\0'的值也是0,但意義是字串結束符
12樓:匿名使用者
是空指標,指向地址為0的記憶體,在用法上,常用來表示不存在,例:if((fp=fopen("stu","rb"))==null)exit(0);
解析:如果開啟的這個名為stu的檔案不存在,就退出程式;
13樓:匿名使用者
null的定義是:
#define null (*(void*)0)簡而言之就是一個打包過的0.
while後面應該填寫
'\0' != *p
因為按照習慣,*p是一個字元變數.
但是你填
null != *p
或者就是
*p都可以.
14樓:匿名使用者
反正null就是0,一般用來形容指標是空的.
至於你說的null == '\0' , 只是因為'\0'也是數值0而已
15樓:匿名使用者
null, 大寫,有這樣一個定義: #define null 0 你能看到? 看vc裡邊應該能看到如果沒有小寫null,你也可以這樣:
#define null 0 這樣就可以,呵呵。
c語言中null有什麼作用?具體用法是什麼?
16樓:小惱
給x變數的空間表示為空,表示沒有儲存資料。如果x = 0;表示x的變數中儲存了一個0元素的值。
17樓:百度使用者
null 其實就是 #define null 0 也就是說它就是0 不過是寫**的時候為指標什麼的賦值或判斷指標是否為空時看起來直觀一些。
c語言中null是什麼意思?
18樓:匿名使用者
是空指標,指
復向地址為
制0的記憶體,在用法上,常用來表bai示不存在,例:duif((fp=fopen("stu","rb"))==null)
exit(0);
解析:如果開啟的這zhi個名為stu的檔案不存在dao,就退出程式;
c語言的 null是什麼
19樓:匿名使用者
在單連結串列中使用時會用到
最後一個元素的後接指標為空(null)
具體到程式的話
不好說```
null一般只是在操作指標的時候才會用到的!
20樓:沒囿叻結局
null,本意是"空的,元素只有零的"意思。null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值。
例:#include
int main()
輸出,單步除錯可以看出執行int *p=null,p的值為0x00000000,可以看出,null在實際底層呼叫中就是0。
c語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的d.m.
ritchie於2023年推出,2023年後,c語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。
21樓:匿名使用者
null 就是錯誤的意思
找不到檔案就是它
22樓:**的可樂
null在實際的底層**中就是0。
比如int *p; // 這時候p的值由系統分配p=null;
則p實際在bebug視窗看到的結果為0x00000000。
--------------------------------關於你的**:
(1) if(fp=("i:\\woailuo.c","r"==null) 寫錯,沒寫fopen,還少個括號
(2) 註釋格式應該是/* */
fopen函式的作用是按照一定格式開啟一個檔案,如果開啟成功,則返回該檔案的指標,如果失敗,則返回空指標(null,或者可以直接認為是0)。
所以,判斷檔案開啟失敗與否,應該這樣寫:
if( ( fp=fopen("somefile.dat","r") ) != null )
/* 開啟成功了,隨便乾點什麼 */
else
/* 開啟失敗,顯示出錯資訊 */
c語言null是什麼意思?
23樓:謝應宸
大多數情況下為0
可以從標頭檔案中看到版其巨集定義
權#ifndef null
#ifdef __cplusplus
#define null 0
#else
#define null ((void *)0)#endif
#endif
#define offsetof(s,m) (size_t)&(((s *)0)->m)
24樓:蒼老師的戀愛
null 一般是對指標初始化賦值為空,表示變數什麼值也沒有,防止指標成為野指標
null就是沒有值
25樓:端青芬花子
null,本意是"空的;元素
只有零的"意思。計算機中通常表示空值,無結果,或是空集合。
null指標是一內個無容型別指標,並且值為0。一個指標,擁有2個屬性--地址值和指標型別。兩者的作用是:
1,地址值標識變數的首地址(32位系統下指標的地址值佔4位元組);2,指標型別告訴編譯器,應該怎樣進行接下來的資料訪問(int型陣列和float型陣列是不同的;陣列訪問與結構體訪問也是不同的;等等)。
C語言中return有什麼作用?returen0和retu
1 退出方式不同 return0代表程式正常退出,return1代表程式異常退出。使用return語句可以返回一個變數內的值或一個指標,也可用return0,表示返回為空。表示返回一個代數值,一般用在子函式結尾。按照程式開發的一般慣例,表示該函式失敗。2 代表意思不同 return0代表函式正常終止...
c語言中指標在程式設計中有什麼作用,C語言中指標在程式設計中有什麼作用?
指標,太有用了,也最難管理的,好處多的是,比如,函式傳遞,引數是結構時,傳指標可以提高效能 可以通過傳遞和儲存指標,通過資料的相對位置來訪問資料,而不用定義不同的n個變數來,分別使用。比如 int a 10 那麼用a 0 a 9 即可訪問裡面的10個資料,而只需要知道a的地址即可,操作方便,而且在函...
c語言中cabcab是什麼意思,C語言中cabca,b是什麼意思
這是一個函式呼叫的語句,c等於abc函式的返回值。一般這麼寫abc是一個函式,也就是存在 fun type abc para type a,para type b c等於上面這段 中最後一行value的值 max 是個函式,表示取其中最大的值。比如a 3,b 4,則max a,b 4 a 4,b 3...