c語言關於指標的求解,C語言中關於指標的指標問題?

2021-08-18 09:05:33 字數 1787 閱讀 1560

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還是不理解,可以...