1樓:
也得看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.
諸如此類。
2樓:匿名使用者
int i,*p=&i;
*p=0; //這個相當於i=0;
3樓:匿名使用者
約定c/c++ 語言中 指標的初始化 為 null
而 null被定義為 (void *)0
4樓:匿名使用者
*p 首先p是個指標,*相當於對地址進行解引用,*p也就是指標指向的物件,對他進行賦值為0,就是對指標指向物件賦值為0
5樓:匿名使用者
考慮p是否指向了有效記憶體位置:
p所指向的變數的值賦值為0
6樓:匿名使用者
把0賦給指標指向的地址,c/c++*** 9045886
7樓:_____一葉障目
表示指標p所指向的變數的值賦值為0
c語言中,*p--=0什麼意思?
8樓:天雲一號
*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
9樓:匿名使用者
指標p指向的記憶體賦值為0,指標倒退一個該型別的長度!
10樓:劍聖灬逍遙
首先要了解運算子的優先順序,
--和*的優先順序相同,但是從右向左結合,即先將指標p--,然後取指標p--後的位置的資料,賦值為0
11樓:匿名使用者
*的優先順序和--優先順序一樣高,這二個都是自右向左執行的,就是先執行p--,然後*p,然後賦值。
12樓:匿名使用者
由於--的優先順序比*高一些~你可以看成*(p--)=0;p減1賦值0
13樓:樂酷科技
好像沒有--=這個運算子的
14樓:鈕發須古香
'\0'是結束
符~bai用來表示一
du段字串的結束,當編譯zhi器看見'\0',就知dao道這個字串結束了。版'\0'也是一個字元,也權佔用和普通字元一樣的空間大小。
*p表示記憶體指向p的字元的ascii碼,也可以理解成char。
*p!='\0'的意思就是,*p的值不為結束符。這樣的語句多用在處理字串時,標示結束用。
c語言中*p=a[0]與p=a[0]有什麼區別?
15樓:匿名使用者
對於指標來說,
*p = a[0],表示向地址為p的記憶體區域賦值為a[0]。
p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體地址,這樣賦值會丟掉p原來指向的記憶體。
正確給記憶體地址賦值應該使用第一句。
16樓:匿名使用者
這個是指標和變數的區別:
第一個表示變數p存的是陣列a的地址值,即表示指向陣列a
第二個表示p和陣列a的第一個元素的值一樣。
17樓:
有啊,*p是個指標,他儲存的是一個變數的地址。你把a[0]裡的資料賦給他,是儲存在那個變數中,不是在存*p中。另一個p是個變數,a[0]中的資料時存在p中
例如:int *p;
p=&b;
*p=a[0];
b==a[0] 值是放在b中
另一個是放在p中 ,不同的
18樓:
都是賦值語句,p的資料型別不同,被賦值的對像不同而已
*p=a[0] ==>賦值對像不是變數p本身,而是它所指向的對像
p=a[0] ==>賦值的對像就是變數p本身
c語言中*p[ ]是什麼意思
19樓:擁雲莊主
*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;}
20樓:匿名使用者
[ ]是變址運算子,p[ ]即計算p的地址並找出此地址單元中的值。如果此地址單元裡存放的是另一個單元的地址,就可以用指標運算子來找出該單元的值。
21樓:匿名使用者
1、這是一個指標陣列。在c語言和c++語言中,陣列元素全為指標的陣列稱為指標陣列。一專維指標陣列的定義形式為屬:
「型別名 *陣列識別符號[陣列長度]」。例如,一個一維指標陣列的定義:int *ptr_array[10]。
2、指標陣列和陣列指標的區別:陣列指標是指向陣列首元素的地址的指標,其本質為指標(這個指標存放的是陣列首地址的地址,相當於2級指標,這個指標不可移動); 指標陣列是陣列元素為指標的陣列,其本質為陣列。例如:
*p[2]是指標陣列,實質是一個陣列,裡面的兩個元素都是指標 的優先順序比*的優先順序高,p先與結合,形成陣列p[2],有兩個元素的陣列,再與*結合,表示此陣列是指標型別的,每個陣列元素相當於一個指標變數。
22樓:匿名使用者
p是一維陣列,p是二維陣列
*p 是一維陣列引數,*p是二位陣列引數,
23樓:匿名使用者
你的疑問來
恐怕是出在二維陣列源裡吧
例如: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]這個元素的值
24樓:匿名使用者
指標陣列,就是你一次定義了很多指標
25樓:雖有如無
*p[ ]=**p=p
c語言中,i=*p-『0』是什麼意思
26樓:匿名使用者
該p必為一個char型指標,若指向一個char型變數,則表示該變數儲存的值與字元'0'的差值,若指向一個char型陣列,則表示他指向的陣列的第一個元素值與字元'0'的差值,並將該差值賦值給變數i。
一般情況下該語句用於將字元'0'~'9'轉換為int型資料的0~9。
27樓:匿名使用者
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]中
28樓:匿名使用者
3樓ok
樓主問的就是*p指向地址的值減去'0'的ascii碼的值48,結果賦值給i
29樓:我所詮釋的
把指標變數指向變數的地址值賦給i變數
30樓:屈鸞禹迪
第一句話是錯誤的,應該為:p=
&原因是&是取地址運算子,&是變數amp在記憶體中所佔用的地址,對於一個指標型變數而言,p是指指標變數p中儲存的地址,*p是指變數所指的地址中的資料。例如amp的記憶體地址0x1234,其中的資料是9876,那麼p表示0x1234,*p表示9876。
0&是指0和amp執行「與」操作,結果為0。
c語言中*p=a[0]與*p=&a[0]有什麼區別?
31樓:gta小雞
*p=a[0],令p所指向地址的內容等於a[0],p是一個一級指標;
*p=&a[0],令p所指向地址的內容等於a[0]的地址,p是一個二級指標。
c語言中 int *p=a[0] 這樣表達對不對
32樓:待月上弦
這個表示式沒有語法錯誤,但是我估計不能達到你想要的結果,不知道你要表達什麼。給你分析下這個表示式的含義,這裡a[0]應該表示一個地址,把這個地址賦給p,然後*p表示a[0]地址所指向的內容。我估計你的a是一個一維陣列,你可能是想讓指標p指向a[0]這個元素,如果是這樣,則表示式應該改為int *p = &a[0]。
但是如果a是一個二維陣列,則這個表示式有意義,沒有任何問題!
33樓:月光疾風
不對,因為p是指標,因此只能對應a[0]的地址,a[0]前面加個取地址符:
int *p=&a[0];
34樓:茜灬一
差不多,就是a應該是int陣列
c語言中ai0啥意思,c語言中ai0和ai0有沒有區別
a i 不等於結束符 一般用於字串for迴圈結束條件 for int i 0 a i 0 i 字串儲存的時候以 0 結尾,一般a 10 abcdsf 在f的後面有 0 a i 0 也就是說遍歷這個字串 c語言中a i 0和a i 0 有沒有區別 10 a i 0和a i 0 是有區別的,也是有相同點...
c語言 x 0是什麼意思,C語言中 x 0表示什麼意思
因為取反運算的優先順序高於邏輯運算子 所以這個邏輯表示式的值是先對x作取反運算,再將該值與0作比較是否相等。要點1 運算優先機高 優先順序低 x表示 如果x為非0值 則 x 結果就是內0 只有x 為0的時候 x 結果才是容1 下一步的 比較就不用說了吧 整個表示式意思就是 當x為非0值的時候整個表示...
c語言中怎麼表示除法,C語言中怎麼表示除法
5處以2這樣寫 5 2結果是取整數的也就是等於2 是除法取餘數好好看看數吧 c語言中除號用 表示,相應的,乘號用 表示 a b 表示a除以b,但是需要注意,當a b均為整形時,運算為求出不大於商的最大整數,如10 7 1,5 2 2,13 4 3 相對應,a b表示求a除以b的餘數 如果要實數除法,...