c語言中,p0什麼意思,C語言中 p 0表示

2021-03-10 18:13:12 字數 4717 閱讀 2963

1樓:天雲一號

*p--=0表示先對指標p所指向的記憶體單元賦值為0,之後,將指標p的地址減1一個記憶體單元的回大小。

可以通過答如下的程式段來進行理解:

int a=; // 定義一個int型陣列,並進行初始化

int *p=&a[2];      // 定義一個int型指標變數,並指向a[2]所在的記憶體單元

printf("%x\n", p); // 輸出指標p的記憶體地址,結果為0x2cfb28

*p--=0;  // 將記憶體地址為0x2cfb28的記憶體單元賦值為0(即a[2]=0),之後記憶體地址減4(因為一個int型別佔4個儲存單元)

printf("%x\n", p); // 輸出指標p的記憶體地址,結果為0x2cfb24

以上程式執行後陣列a的值為1 2 0 4

2樓:匿名使用者

指標p指向的記憶體賦值為0,指標倒退一個該型別的長度!

3樓:劍聖灬逍遙

首先要了解運算子的優先順序,

--和*的優先順序相同,但是從右向左結合,即先將指標p--,然後取指標p--後的位置的資料,賦值為0

4樓:匿名使用者

*的優先順序和--優先順序一樣高,這二個都是自右向左執行的,就是先執行p--,然後*p,然後賦值。

5樓:匿名使用者

由於--的優先順序比*高一些~你可以看成*(p--)=0;p減1賦值0

6樓:樂酷科技

好像沒有--=這個運算子的

7樓:鈕發須古香

'\0'是結束

符~bai用來表示一

du段字串的結束,當編譯zhi器看見'\0',就知dao道這個字串結束了。版'\0'也是一個字元,也權佔用和普通字元一樣的空間大小。

*p表示記憶體指向p的字元的ascii碼,也可以理解成char。

*p!='\0'的意思就是,*p的值不為結束符。這樣的語句多用在處理字串時,標示結束用。

c語言中*p=0表示?

8樓:

也得看p的定義了

如果int *p;*p=0;則是把p執行的int空間的值修改為0如果int **p;*p=0;則是把指向int空間的指標置為0。

上面這幾個例子,都得考慮p是否指向了有效記憶體位置,否則是危險的操作。

完整的範例:

int a;

int *p=&a;

*p=0;

相當於p指向的int空間,即a的值被改為0瞭如果p是更多級的指標或是指向更復雜的記憶體,可以把一級指標之外的內容看成一個整體,比如:

int **p;

可以先 typedef int *intpointer;

intpointer *p;

然後*p=0;

就是把p指向的intpointer空間的值置為0.

諸如此類。

9樓:匿名使用者

int i,*p=&i;

*p=0; //這個相當於i=0;

10樓:匿名使用者

約定c/c++ 語言中 指標的初始化 為 null

而 null被定義為 (void *)0

11樓:匿名使用者

*p 首先p是個指標,*相當於對地址進行解引用,*p也就是指標指向的物件,對他進行賦值為0,就是對指標指向物件賦值為0

12樓:匿名使用者

考慮p是否指向了有效記憶體位置:

p所指向的變數的值賦值為0

13樓:匿名使用者

把0賦給指標指向的地址,c/c++*** 9045886

14樓:_____一葉障目

表示指標p所指向的變數的值賦值為0

c語言中*p[ ]是什麼意思

15樓:擁雲莊主

*p=*p(),首先,它是一個

陣列,陣列裡面儲存的是指標

(*p)則不同,首先它是版一個指標,然後權,它指向一個陣列,但通常,再定義的時候需要指定所指向陣列的大小。

示例:#include

int main(int argc, char *argv);//char指標陣列,兩個元素,分別指向hello和worldprintf("%s\n%s\n",p[0],p[1]);//分別輸出兩個元素

char (*p2)[10]=&a;//指向陣列的指標,所指向的陣列有10個char元素

printf("%s\n",p2);

return 0;}

16樓:匿名使用者

[ ]是變址運算子,p[ ]即計算p的地址並找出此地址單元中的值。如果此地址單元裡存放的是另一個單元的地址,就可以用指標運算子來找出該單元的值。

17樓:匿名使用者

1、這是一個指標陣列。在c語言和c++語言中,陣列元素全為指標的陣列稱為指標陣列。一專維指標陣列的定義形式為屬:

「型別名 *陣列識別符號[陣列長度]」。例如,一個一維指標陣列的定義:int *ptr_array[10]。

2、指標陣列和陣列指標的區別:陣列指標是指向陣列首元素的地址的指標,其本質為指標(這個指標存放的是陣列首地址的地址,相當於2級指標,這個指標不可移動); 指標陣列是陣列元素為指標的陣列,其本質為陣列。例如:

*p[2]是指標陣列,實質是一個陣列,裡面的兩個元素都是指標 的優先順序比*的優先順序高,p先與結合,形成陣列p[2],有兩個元素的陣列,再與*結合,表示此陣列是指標型別的,每個陣列元素相當於一個指標變數。

18樓:匿名使用者

p是一維陣列,p是二維陣列

*p 是一維陣列引數,*p是二位陣列引數,

19樓:匿名使用者

你的疑問來

恐怕是出在二維陣列源裡吧

例如:int a[3][5],*p;

p=a;

上面的第bai一行表示定義一個du指標變數p,下面zhi一行表示p指向dao陣列a的首行

a+1表示下一行首地址

*p等價於*(p+0)等價於p[0] 表示p[0]行首地址p[0]+1表示p[0][1]的地址 p[0]+2表示p[0][2]的地址

而*(p[0]+2)表示p[0][2]這個元素的值

20樓:匿名使用者

指標陣列,就是你一次定義了很多指標

21樓:雖有如無

*p[ ]=**p=p

c語言中指標*p與*p-'0'和*p+'0'有什麼區別

22樓:匿名使用者

*p就是指標指向目標的值

-'0' 就是減去48,如果是p指向的是數字字元(一位)就轉換為對應的數字的ascii碼

+ '0'就是加上48,當然就是將p指向的數字(一位)轉換為對應的ascii碼

23樓:匿名使用者

*為取值符號

如果p所指向的地址的的值為1000,存放的值為5,那麼p=1000,*p=5

*p-'0' 就是 5-'0'

*p+'0' 就是 5+'0' 『0』的值為48

24樓:s飯糰

拿程式說話

:#include

void main()

結果為:答

c語言中*p=a[0]與p=a[0]有什麼區別?

25樓:匿名使用者

對於指標來說,

*p = a[0],表示向地址為p的記憶體區域賦值為a[0]。

p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體地址,這樣賦值會丟掉p原來指向的記憶體。

正確給記憶體地址賦值應該使用第一句。

26樓:匿名使用者

這個是指標和變數的區別:

第一個表示變數p存的是陣列a的地址值,即表示指向陣列a

第二個表示p和陣列a的第一個元素的值一樣。

27樓:

有啊,*p是個指標,他儲存的是一個變數的地址。你把a[0]裡的資料賦給他,是儲存在那個變數中,不是在存*p中。另一個p是個變數,a[0]中的資料時存在p中

例如:int *p;

p=&b;

*p=a[0];

b==a[0] 值是放在b中

另一個是放在p中 ,不同的

28樓:

都是賦值語句,p的資料型別不同,被賦值的對像不同而已

*p=a[0] ==>賦值對像不是變數p本身,而是它所指向的對像

p=a[0] ==>賦值的對像就是變數p本身

c語言 *p=&a[0][0] 這是什麼意思啊? 如果後面還有*p+1;呢

29樓:匿名使用者

p是個指標,指向的地方被賦值為a[0][0]的地址,所以p應該是個二維指標例如

int * q;//相當於&a[0][0]int** p=&q ;

*p=q;

後面的*p+1值就是&a[0][1]

30樓:洛雨

就是把p指向a[0][0]的地址,*p+1,根據優先順序,其實是(*p)+1,相當於a[0][0]+1

C P是什麼,c語言中 p是什麼意思?

cp 俄語縮寫 意思是 union of soviet socialist republics 原蘇聯社會主義共和國聯盟 包括曾經被蒙古帝國戰略過的中亞,西亞以及東歐和俄羅斯地區。cape province 南非 開普省 我知道這不是你要找的 但我就查到這些 是中華人民共和國 china.peopl...

c語言中ax yxy什麼意思,C語言中a x y x y 什麼意思

這是一個三目運算子,如果 x 與 y 相等的話,把 x的值賦給a,否則,將 y的值賦給a 在這裡,x是先對x進行自減1再執行語句,y是再執行完語句再執行y自加1,也就是說現在解析出來的表示式為 x 1 y 後面同理!中文版 就是 判斷 x 是否等於y y 是算完後加 忽律 假如等於 就 a x,假如...

c語言中fun是什麼意思,C語言中funa,b是什麼意思

就是個自定義標抄識符,通常用襲作自定義函式bai的函式名,是函式dufunction這個詞的開頭字zhi母。通常舉dao例子的時候,不知道該叫什麼名了,就取名fun或func或function。前幾年我回答過這種問題,結果題主採納的是一幫胡扯答案的。這次我就看看還有沒有睜眼說瞎話胡扯的。c語言中fu...