作者w199381 (噁心肥宅)
看板C_and_CPP
標題[問題] 指標問題...
時間Fri Aug 31 09:52:37 2018
問題(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1535680360.A.CBA.html
1F:推 jerryh001: 因為%s表示以字串處理後面的p 編譯器不會知道p實際是啥 08/31 10:00
2F:→ w199381: 謝J大 那我還有疑問是 這裡的p實際上只有指到A[2]? 08/31 10:23
3F:→ w199381: 只是因為%s的關係 才將後面所有值都印出來? 08/31 10:24
4F:→ sarafciel: p指到A[0]上吧 08/31 11:41
5F:推 dces4212: p可以無限往上指 然後%s是從開始位置一直dereference直 08/31 12:27
6F:→ dces4212: 到遇到\0(NULL) 這兩點要注意 08/31 12:27
7F:→ w199381: 感謝大大解惑 08/31 13:15