PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
Re: [問題] 2D array的address
作者:
KanzakiHAria
(神崎・H・アリア)
2018-04-23 12:50:37
《21世紀C語言》書中提供一個直觀的看法。以解析原理來看推薦*偏右。
int a = 2;
int *b = &a;
int c[3];
int d[2][3][4];
結果 a 和 *b 是 int ,同樣的邏輯 c[1] 和 d[1][2][3] 是 int
因為歷史包袱,取值的方法有一堆手段,千萬不要寫成以下任何一行的糟糕程式碼:
int AAA = *c;
int BBB = *(int*)(void*)d;
int CCC = b[0];
作者:
Lipraxde
(Lipraxde)
2018-04-23 19:54:00
b[0] ← 這樣用很糟糕是因為a不是陣列的關係?這樣做動態陣列不就頗麻煩的
作者:
LPH66
(-6.2598534e+18f)
2018-04-24 02:55:00
這是在 int *b = &a; 之下的建議, 動態陣列是不一樣的東西這其實正是「指標不等於陣列」的真意:它底下是什麼東西就要用什麼介面去存取當 b 是指向一個變數時用 * 存取, 指向陣列開頭時才用 []
作者:
Lipraxde
(Lipraxde)
2018-04-24 10:20:00
原來是在說這個啊,感謝
繼續閱讀
[問題] 2D array的address
zzss2003
Re: [問題] address operator &
enonrick
[問題] address operator &
zzss2003
[問題] 關於C的讀檔問題
seblef
[問題] function用char**當參數
wong0101
[問題] CL.exe 以返回碼2結束
nicknick0630
[問題] UVA10343 一直 wrong answer ...求救..
saufu08
[問題] 某條thread 卡死怎麼拿到 callstack
gigigigi
Re: [問題] big-endian vs little-endian
enonrick
[問題] big-endian vs little-endian
zzss2003
Links
booklink
Contact Us: admin [ a t ] ucptt.com