c語言中,ip0是什麼意思

2021-03-07 03:59:30 字數 5510 閱讀 4663

1樓:匿名使用者

該p必為乙個char型指標,若指向乙個char型變數,則表示該變數儲存的值與字元'0'的差值,若指向乙個char型陣列,則表示他指向的陣列的第乙個元素值與字元'0'的差值,並將該差值賦值給變數i。

一般情況下該語句用於將字元'0'~'9'轉換為int型資料的0~9。

2樓:匿名使用者

p是乙個指標,*p是他所指向的內容,這裡p是char 型別的指標,所以*p實際上就是乙個字元,比如'a'

'0'在這裡也是乙個字元(用單引號括起來的都是乙個字元char型)

由於對於c語言來講,字元是用ascii碼表示的,也就是說乙個字元是乙個0~255的整數,'0'的ascii碼是48,'1'的ascii碼是49。。。

所以*p-'0'實際上可以寫成*p-48

由於你的str裡面全部是字元型的數字,因此實際上i=*p-'0'實際上是把這些字元轉換成整數

比如*p指向'3'的時候,因為'3'的ascii碼是51,所以*p-'48'就等於整數3

所以整段程式的意思是吧你的乙個只包含數字的字串str中的每乙個字元轉換成整數放在a[i]中

3樓:匿名使用者

3樓ok

樓主問的就是*p指向位址的值減去'0'的ascii碼的值48,結果賦值給i

4樓:我所詮釋的

把指標變數指向變數的位址值賦給i變數

5樓:屈鸞禹迪

第一句話是錯誤的,應該為:p=

&原因是&是取位址運算子,&是變數amp在記憶體中所占用的位址,對於乙個指標型變數而言,p是指指標變數p中儲存的位址,*p是指變數所指的位址中的資料。例如amp的記憶體位址0x1234,其中的資料是9876,那麼p表示0x1234,*p表示9876。

0&是指0和amp執行「與」操作,結果為0。

c語言中,*p--=0什麼意思?

6樓:天雲一號

*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

7樓:匿名使用者

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

8樓:劍聖灬逍遙

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

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

9樓:匿名使用者

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

10樓:匿名使用者

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

11樓:樂酷科技

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

12樓:鈕髮鬚古香

'\0'是結束

符~bai用來表示一

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

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

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

c語言中*p=0表示?

13樓:

也得看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.

諸如此類。

14樓:匿名使用者

int i,*p=&i;

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

15樓:匿名使用者

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

而 null被定義為 (void *)0

16樓:匿名使用者

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

17樓:匿名使用者

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

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

18樓:匿名使用者

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

19樓:_____一葉障目

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

c語言(*(*p+i))是什麼意思

20樓:咎婕竹俊雅

簡單的知識點:陣列的下標是從0開始的。

舉例來說,陣列有10個元素,陣列的下標是0到9;第乙個元素的下標為0,第二個元素的下標為1。

21樓:告悠蒯從蓉

*p+=i相當於*p=*p+i

p是乙個指標,上述**相當於把p指向的

變數的值加上i,假設p指向int型變數,內參考**容:

inta=5,i=3,*p=&a;

*p+=i;

//此處相當於a+=i,也就是a=a+i,此時a的值變成8

22樓:匿名使用者

(1)如

來果定義int *p,p=a[0];則p是指向二維源陣列首個元素的指標變數。

p=a[0]等價於p=&a[0][0],p+1等價於a[1]等價於&a[1][0]

(2)如果定義int (*p)[4] ,p=a;則p是指向二維陣列第0行的指標變數。

a等價於&a[0],*p等價於a[0];所以**p等價於a[0][0];

(*(*p+i)+j)等價於:陣列元素a[i][j]

23樓:匿名使用者

p應該是指向二維陣列的首位址

(*(*p+i))代表的是第一行第i列的值

24樓:劉麗平

指標所指的陣列中的元素

25樓:看灰過來了

看著像是二維陣列第0行第i列的元素

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

26樓:匿名使用者

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

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

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

27樓:匿名使用者

*為取值符號

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

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

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

28樓:s飯糰

拿程式說話

:#include

void main()

結果為:答

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

29樓:擁雲莊主

*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;}

30樓:匿名使用者

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

31樓:匿名使用者

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

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

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

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

32樓:匿名使用者

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

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

33樓:匿名使用者

你的疑問來

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

例如: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]這個元素的值

34樓:匿名使用者

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

35樓:雖有如無

*p[ ]=**p=p

c語言中0是什麼意思,c語言中x 0是什麼意思

判斷變數x的值是否為0 如果是 那麼這個式子的邏輯值為1 或者真 否則 其邏輯值為0 或者假 例如if x 0 如果x為0,那麼x 0就為1 或者真 就執行否則就跳過不執行 是邏輯bai運算子du,用於判斷是否等zhi於。例如 y x 0 中如果daox的值回為0,那答麼 x 0 的運算結果就是1,...

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

你好,a b表示a a b a b表示a a b 是c語言的運算子部分的知識 其中 是結構體指標的知識 條件運算子 a?b c表示a為真則執行b,否則執行c 運算子的知識,叫自反賦值運算子 a b相當於a a b a b相當於a b 是指向成員運算子 不懂可以問我 c語言中輸出語句中用到 c,表示輸...

c語言中o是什麼意思,C語言中 c是什麼意思

o意思是以八進位制整bai型式輸出整du數。c語言zhi中對於不同型別的資料用dao不同的格式字元內。x格式符,以十六進製制數容形式輸出整數。u格式符,用來輸出unsigned型資料,即無符號數,以十進位制形式輸出。c格式符,用來輸出乙個字元。s格式符,用來輸出乙個字串。擴充套件資料 scanfse...