精華區beta Programming 關於我們 聯絡資訊
※ 引述《buganini.bbs@ptt.cc (蟲)》之銘言: [略] > *(p[a]+b) [略] > 會是*(p+a*8+b) [略] > 以上範例黃色的地方 > 我不清楚要不要*sizeof(int) > 雖然我感覺上是要 > 不過我看書上寫好像不用 不用,pointer arithmetic 機制本身會幫你乘上去, 道理就跟 p + 1 還有 ++p 一樣, 實際上會乘以多少, 是看 p 本身的 pointer type 決定。 所以有一種技巧是將 (int *) 轉成 (char *), 然後每把 p + 1 只會走 sizeof(char) 的間距, 所以 (char *) 走 sizeof(int)/sizeof(char) 格只等於 (int *) 走一格, 其原理就是這麼來的。 -- Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Undecided Homepage: https://it.muds.net/~uranus -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.252 > ╰─╮ ╚╦═╦╝ From:61-230-224-108.dynamic.hinet.net ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩