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語言中函式指標用法
函式在記憶體中有一個物理位置,而這個位置是可以賦給一個指標的。一零點函式的地址就是該函式的入口點。因此,函式指標可被用來呼叫一個函式。函式的地址是用不帶任何括號或引數的函式名來得到的。這很類似於陣列地址的得到方法,即,在只有陣列名而無下標是就得到陣列地址。怎樣說明一個函式指標變數呢 為了說明一個變數...
關於c語言指標呼叫函式,關於C語言中指向函式的指標的呼叫問題
第一條紅線是定義乙個函式指標 第二條紅線起強轉作用,把0xd010f0強轉為對應的函式指標型別 我寫的這個程式可以幫你理解.常量位址被printab取代 劃紅線的是宣告了乙個函式指標,這個函式的兩個引數和返回值都是int,然後將0xd 的位址強制轉換為函式啊 同下面類似 typedef int fu...
c語言指標的概念,論述C語言中指標的概念和作用,並舉例說明
指標是c語言中廣泛使用的一種資料型別。運用指標程式設計是c語言最主要的風格之一。利用指標變數可以表示各種資料結構 能很方便地使用陣列和字串 並能象組合語言一樣處理記憶體地址,從而編出精練而高效的程式。指標極大地豐富了c語言的功能。學習指標是學習c語言中最重要的一環,能否正確理解和使用指標是我們是否掌...