c語言二維陣列指標,C語言二維陣列指標

時間 2021-12-18 23:06:11

1樓:匿名使用者

問題的關鍵是主函式中的指標p的值被修改了,因為:

在f(r) 中,r = &p ; 在 f 函式中,*s = t 相當與 p = t;

而 t = &k; 所以 p = &k.

那麼主函式中,*p = k; **r = k。

2樓:八千漢字

#include

int k=7;

void f(int **s)

int main()

3樓:三昧離火

b答案是正確的,因為二維陣列名相當於二級指標,用二級指標(w)來表示元素的必須有兩個(*)號:

a *(*w+3) ()的優先順序高於*,所以*w是列指標(一級指標) (*w+3)是列上加3,也就是移到第三列 *(*w+3)就是第一行第三列的元素值

b *(w+1)[4] ()和優先順序相等,但自左至右結合,優先順序高於* 所以 w+1 是行指標移到下一行(用q來表示) *q[4] q[4] 是再往下移4行,我定義的陣列時3行,所以越界啦,隨機值。如果把4改為1就可以表示乙個元素啦,即 *(w+1)[1]

c *(*(w+1)) w+1是行指標下移一行 *(w+1) 列指標,再加乙個*號,指元素

d *(&w[0][0]+1) &w[0][0]是列指標 &w[0][0]+1是列指標加1,列指標再加*號是指元素

#include

void main()

}for(i = 0;i < 3;i++)

printf("\n");

}printf("a: %d\n",*(*w+3));

printf("b: %d\n",*(w+1)[4]);//行越界啦

printf("c: %d\n",*(*(w+1)));

printf("b: %d\n",*(w+1)[1]);//這樣改就可以啦

}是否可以解決您的問題?

c語言動態二維指標陣列,c語言動態二維指標陣列

對你的問題有點不懂,你是想說元素都是char型變數,如果是,可以這麼做 char array new char m n m和n的值都可以隨意改變 不知道是不是你想要的 維位址,指向二維陣列第0行位址 0開始計數 第1列 0開始計數 優先順序 所以表示式實際是 p 1 乘以 p 1 1 p指向值為 2...

c語言,指標二維陣列

n是個陣列,已經定義成陣列常量了,陣列的元素型別是指標,元素指標的對應的物件型別是字串,即為字元指標。因為n是陣列名,n不能再賦值 n 等價於返回 n然後n n 1 給n賦值報錯 include int main for i 0 i 3 i system pause return 0 雖然有人回答了...

c語言排列二維陣列,c語言 排列二維陣列

這個程式演算法很好,但是你沒有想一下,if j 3 這段中j 3是不夠的,因為它有可能與a 3 0 比較,因為a 3 0 未知而出錯。另外,你第乙個for語句中標點錯了。還有乙個錯誤是你查不出來的原因,大括號少了乙個,自己仔細查一下,也可以使用ue32這個程式查一下括號匹配。建議你使用這個程式來寫源...

C語言問題二維陣列,C語言題目 對二維陣列的正確說明是

include include 這裡假設1行最多100個字元 define maxline 100 int main 開啟檔案,假設在d盤根目錄下 file fp fp fopen d icc1.q7 r if fp null char line maxline 接收檔案資料,以行為單位 int s...

c語言如何利用指標接受二維陣列實參

1 通過二級指標去訪問二維陣列需要先給二級指標分配等同於二維陣列行數的一維陣列指標,然後把二維陣列的每行首位址賦值給對應位置的一維指標上。之後就可以通過二維指標直接訪問了。2 例程 include 輸入輸出標頭檔案。include 本程式需要用到malloc free函式,引用該標頭檔案。int m...