[問題] 指標問題...

看板C_and_CPP作者 (噁心肥宅)時間5年前 (2018/08/31 09:52), 編輯推噓2(205)
留言7則, 4人參與, 5年前最新討論串1/1
問題(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

08/31 10:00, 5年前 , 1F
因為%s表示以字串處理後面的p 編譯器不會知道p實際是啥
08/31 10:00, 1F

08/31 10:23, 5年前 , 2F
謝J大 那我還有疑問是 這裡的p實際上只有指到A[2]?
08/31 10:23, 2F

08/31 10:24, 5年前 , 3F
只是因為%s的關係 才將後面所有值都印出來?
08/31 10:24, 3F

08/31 11:41, 5年前 , 4F
p指到A[0]上吧
08/31 11:41, 4F

08/31 12:27, 5年前 , 5F
p可以無限往上指 然後%s是從開始位置一直dereference直
08/31 12:27, 5F

08/31 12:27, 5年前 , 6F
到遇到\0(NULL) 這兩點要注意
08/31 12:27, 6F

08/31 13:15, 5年前 , 7F
感謝大大解惑
08/31 13:15, 7F
文章代碼(AID): #1RY9zeow (C_and_CPP)