[问题] 指标问题...

楼主: 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