intppNULL是否等於p

2021-03-03 20:39:08 字數 3637 閱讀 8800

1樓:匿名使用者

不是一樣的, 前者是正確的, 表示p不指向任何地址

p[0[ 不能這樣用,你是往p[0]這個記憶體中寫入字元'\0'

由於p還沒有申請記憶體,所以這樣操作它是錯誤的

2樓:匿名使用者

不等,int *p,其中p表示的是指向int型別的指標,p[0]表示的是指標p所指向的記憶體單元的值,打個比喻,int *p中的p有點類似於a[0]中0的角色,而不是a[0]的角色

3樓:

p是一個int指標,其實是一個int型別變數,p[0] = '\0'你是指的p為char*型,所以不等於。

定義int *p;p=null和p=0還有p=『\0』的意思一樣麼?

4樓:匿名使用者

null ,0,'\0',這幾種寫法一樣,值都是0在很多編譯器中#define null 0這樣巨集定義的都是給p的值賦值0,'\0'就是0,不過是以字元的形式,

因此他們是相同的

有*p=null,*p = 0,*p = '\0『,這樣的寫法,不過他們的意思是說,給p這個指標指向的空間賦值為0

但是,不要先把p賦值為0,然後這樣寫,因為大多數編譯器規定,記憶體為0的地方不能寫操作,這是為了保護這個記憶體空間,因此只要不寫在一塊,都可以

這樣寫:

file1.c

#include

void main()

file2.c

#include

void main()

5樓:泡泡愛亦菲

p = null和p = 0;是一樣的,講指標初始化為空,這是初始化指標的一個方法,

因為在使用一個變數 之前 的時候最好將其初始化而p = '\0' 是將p指向'\0'的,'\0'是個字元,所以p等於\0的地址

*p = null,

*p = '\0'

這兩個語法上都沒錯,

c語言中 int *p=null; 則這條語句是不是錯的? *p=0

6樓:匿名使用者

前面int *p=null;就是定義bai一個du空指標。zhi但後面*p=0;可以正

dao常執行的前提,是這個p指標指向了內一個合法記憶體空間容。

譬如:int a;

int *p=null;

p=&a;    /*p指向變數a的地址*/*p=0;    /*這裡的意思就是把0寫入p指向的記憶體空間,也就是變數a存放的空間,這樣就改變了變數a的值*/

這樣是可以的。

7樓:匿名使用者

沒錯,這是定義一個指標變數p,並賦值為空,用以說明該指標沒有任何指向性。

該指標的值為null在儲存單元中的指向為0,也就是不指向任何地址。單看這一條語句的話,是沒有意義的。

8樓:匿名使用者

p賦為null,之後再賦值是可以的,但*p=0,本身就有問題

9樓:非常可愛

c語言bai

中int *p=null意思是:

c語言du中p裡面是隨機值,在zhiint *p=null,這個p是有值的,dao為null;

int *p=null指向一個空指標專,等於屬 int *p=0; null等於0;

可以隨時讓這個p指向其他地址。定義指標,將它初始化為null,這樣做程式設計更規範。

擴充套件資料

*p = null的作用

代表對一個由指標p指向的變數(什麼型別,不知道),賦值為0,是將那個變數賦值為0。

int *p;

*p = null;

第一行**,定義了一個指標變數p,其指向的記憶體裡面儲存的是int型別的資料;但是這時候變數p本身的值是多少不得而知,也就是說現在變數p儲存的有可能是一個非法的地址。

第二行**,給*p賦值為null,即給p指向的記憶體賦值為null;但是由於p指向的記憶體可能是非法的,所以除錯的時候編譯器可能會報告一個記憶體訪問錯誤。這樣的話,可以把上面的**改寫,使p指向一塊合法的記憶體:

int i = 10;

int *p = &i;

*p = null;

c語言裡int *p; if(*p==null)和if(p==null)有什麼區別 我不怎麼理解這

10樓:

帶*號是取值的意思,即取指向地址的值。

所以if(*p == null)是判斷指標p指向的地址儲存的值是否為null

if(p == null)是判斷指標p是否指向null希望對你有幫助。

11樓:聽不清啊

int *p;的話,

*p是一個int值,所以,if(*p==null)是不對的。

12樓:匿名使用者

不理解慢慢理解。用腦子。。。。。

c語言中int *p=null是什麼意思

13樓:非常可愛

c語言中

int *p=null意思是:抄

c語言襲中p裡面是隨機值,在int *p=null,這個p是有值的,為null;

int *p=null指向一個空指標,等於 int *p=0; null等於0;

可以隨時讓這個p指向其他地址。定義指標,將它初始化為null,這樣做程式設計更規範。

擴充套件資料

*p = null的作用

代表對一個由指標p指向的變數(什麼型別,不知道),賦值為0,是將那個變數賦值為0。

int *p;

*p = null;

第一行**,定義了一個指標變數p,其指向的記憶體裡面儲存的是int型別的資料;但是這時候變數p本身的值是多少不得而知,也就是說現在變數p儲存的有可能是一個非法的地址。

第二行**,給*p賦值為null,即給p指向的記憶體賦值為null;但是由於p指向的記憶體可能是非法的,所以除錯的時候編譯器可能會報告一個記憶體訪問錯誤。這樣的話,可以把上面的**改寫,使p指向一塊合法的記憶體:

int i = 10;

int *p = &i;

*p = null;

14樓:衄潲

樓上bai說的都對,看來你是新du手,建議你去看林銳zhi

的《高質量daoc++》,這本書,內你一定會喜歡的,因容

為他對於入門者來說特別好,他會給你講正確的程式設計規範是什麼。其中那塊講指標的部分就寫了,定義指標,一般先給初始化,用null來初始化它,避免野指標。你這裡說的int *p,這個p裡面是隨機值,而int *p=null,這個p是有值的,為null.

這其實對程式也沒有啥貢獻,在後面你也可以隨時讓這個p指向別的地址。定義指標,順便將它初始化為null,這樣做程式設計更規範。

假設有定義 int *p; 那麼p[0], &p, &p[0], (&p)[0], *p 分別代表什麼?

15樓:

p[0]就是*p 就是p所指向的記憶體中的值&p是p這個指標本身的地址,&p的型別是int**&p[0]就是p[0]的地址,也就是p

(&p)[0],就是*(&p),也是p

*p,就是前面說的p[0]

由f浮等於p肉液gv排可推算出p肉等於什麼

可以得出密度等於浮力除以重力加速度和排開水的體積的積 中考f浮 p液gv排公式可以直接用嗎?可以直接使用f浮 p液gv 阿基米德原理的內容是 浸入液體中的物體受到向上的浮力,浮力的大小等於物體排開的液體受到的重力.阿基米德原理的數學表示式 f浮 g排 p液gv阿基米德原理也適用於氣體。可以直接用 f...

Help yourself 是否等於 Enjoy yourself ,給我例句

不是啦,help yourself是隨便點,enjoy yourself是祝你過的開心,比如help yourself to some cake a tomorrow,i ll go to the beach.b enjoy yourself help yourself和enjoy yourself...

關於卡方檢驗P值的意義,P值恰好等於0 05,請問這樣可以說

如果確實是這樣,應該是接受原假設 也就是沒有統計學意義 因為不管那本參考書或統計軟體都是說小於a 不包括等於a 例如a 0.05 就拒絕原假設。不過,如果你是使用統計軟體的話,應該不存在這個問題,因為統計軟體計算的p值可以高達十幾位小數點,不可能出現你說的情況。原因很簡單,在統計學領域,p小於a 不...