[問題] 指標問題...

作者: w199381 (噁心肥宅)   2018-08-31 09:52:37
問題(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了一下實在找不到答案...
作者: jerryh001   2018-08-31 10:00:00
因為%s表示以字串處理後面的p 編譯器不會知道p實際是啥
作者: w199381 (噁心肥宅)   2018-08-31 10:23:00
謝J大 那我還有疑問是 這裡的p實際上只有指到A[2]?只是因為%s的關係 才將後面所有值都印出來?
作者: sarafciel (Cattuz)   2018-08-31 11:41:00
p指到A[0]上吧
作者: dces4212 (flawless)   2018-08-31 12:27:00
p可以無限往上指 然後%s是從開始位置一直dereference直到遇到\0(NULL) 這兩點要注意
作者: w199381 (噁心肥宅)   2018-08-31 13:15:00
感謝大大解惑

Links booklink

Contact Us: admin [ a t ] ucptt.com