作者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/cn.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