看板 C_and_CPP 關於我們 聯絡資訊
問題(Question): int指標指向 char[]問題 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) main() { char A[9]; int i; int *p; p = &A[0]; for (i = 0; i < 9; i++) { A[i] = 0; } A[0] = 'a'; printf("%s\n", A); for (i = 1; i < 5; i++) { A[i] = A[i - 1] + i; } printf("%s\n", A); printf("%s\n", p); getchar(); } 想請問各位大大 為什麼打印出來的p會是 整串A 而不是只打印A[0]? google了一下實在找不到答案... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.55.211 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1535680360.A.CBA.html
jerryh001: 因為%s表示以字串處理後面的p 編譯器不會知道p實際是啥 08/31 10:00
w199381: 謝J大 那我還有疑問是 這裡的p實際上只有指到A[2]? 08/31 10:23
w199381: 只是因為%s的關係 才將後面所有值都印出來? 08/31 10:24
sarafciel: p指到A[0]上吧 08/31 11:41
dces4212: p可以無限往上指 然後%s是從開始位置一直dereference直 08/31 12:27
dces4212: 到遇到\0(NULL) 這兩點要注意 08/31 12:27
w199381: 感謝大大解惑 08/31 13:15