1樓:出釹
int x[10] = , *p1;
(a) x[3]// x[3]=3 陣列從0開始,3其實是第四個(b) p1 = x + 3, *p1++ //先執行p1=x+3,也就是指向x[3],因為p1定義成指標。*p1++ 這時候先執行再加,這表示式仍然是3
(c) p1 = x + 2, *(p1++) //p=x+2 ,x陣列的位址加2,也就是指向x[2],x=2,這時候p++同時也是先執行後加,所以取出x[2]的值,所以等於2
(d) p1 = x + 2, *++p1//同樣,p1指向x[2],但++是先加再執行*取值,所以++p指向x[3],取出來的值就是3
答案是 c
2樓:匿名使用者
(a) x[3] // 肯定為3,不用說
(b) p1 = x + 3, *p1++ // x[3] 3
(c) p1 = x + 2, *(p1++) // x[2] 2
(d) p1 = x + 2, *++p1 // x[3] 3選c
3樓:後赩修嘉美
for(k=0;k<4;k++)
這個迴圈多了一次,因為你的a只有3行,但是卻迴圈了4次,所以越界了,應該把k<4改為k<3
c語言中關於指標的指標問題?
4樓:匿名使用者
指標變數存的來是位址
自,位址中的內容是資料
二維指標變數存的也是位址,只是址中的內容還是位址如:int i ;
int *p;
int **pp;
i=0; //i變數中存的是資料10,i是個變數名p=&i; //p變數中存的是i的位址 *p==i==5pp=&p ; //pp中存的是p變數的位址 *pp==p==&i **pp==i==5
5樓:
兩個星號表示二級指標,說明他也指向乙個指標,他所指向的指標的值是5
c語言,關於指標
6樓:愛你撒啊咯去咯
(3)(4).int **pp;定義了來乙個整型二級指標自baipp,pp也是乙個指標變數,只不過它存du儲的是指zhi針p的位址,而dao指標p儲存的是k的位址.
(5):*=是賦值運算子,a*=b時,等價於a=a*b。
*pp表示的是p的值,即為k的位址,**pp即為k;k*=2,等價於k=k*2,即為將k增加一倍。
滿意請採納,不懂請追問。
7樓:匿名使用者
不知道你是否有看清楚題意
(3)、指標
加*,指向指標加**,假設有乙個整形的指內針變數容為*p,那麼如何再定乙個變數指向*p呢,自然是int **pp;
(4)、如果pp是指向指標的指標,也就是雙重指標,那麼p為指標,將指向指標的指標指向指標自然就是**pp=&p;
(5)、雙重指標取值和賦值,**pp就是取值,賦值就是**pp=,那麼假設**pp已存放k的值,將k的值翻倍就是**pp*2,然後再將值賦予**pp就是**pp = **pp * 2,又由於算數運算子大於指標運算子,所以給加上(),優先運算指標運算子將值取出來,然後用c的語法糖*=簡化**
不知道你是否真的理解了指標或者是題意,這裡的回答避免不了複雜的敘述,將簡單事物說的複雜不是難事,將複雜的事物敘述簡單才是難事,可是要把1+1為什麼等於2這件事說清楚更是難事。
c語言指標問題,求解答,C語言中的指標問題,求解答
1,是取值運算子,因為你要判斷tt的值的情況,所以要用 2,tt 相當於 tt tt 1 這個是指標向後移動,不需要取值,謝謝,望採納 你的tt是指標吧。tt指向的是 位址 比如位址值為 10ff 1000 tt是取這個位址中儲存的資料,而tt 意思把tt指向的位址值 1,即tt現在指向了 10ff...
C語言中的空指標,C語言中的空指標是什麼意思?
int p 47 這個用法是不正確的 這個語句等於下邊的 int p p 47 你直接將指標p的值賦值為47是很危險的 應為如果記憶體中位址為47的地方剛好是某個系統程式或關鍵模組佔據的話你進行下面 p 20 的賦值行為 有可能導致系統直接崩潰哦 是的,不過這很危險。而且cpu的32位保護機制也未必...
關於C語言 關於C語言中continue 的用法?
是指乙個字串,也就是以char命名的乙個串。而1則是乙個數值,常量。而對於這個程式的case語句中所要判斷的是字串c,所以需要判斷是否相同的內容兩邊要加上單引號,來表明它是乙個字串。而樓主舉的 case 1 中的1是乙個數字,所以不需要加上單引號,因為數字本來就是這樣表示的。如果lz還是不理解,可以...