C语言,指针问题,为什么输出结果是3,求高手帮忙分析分析,最好详细点说,谢谢!!

2025-01-03 19:38:48
推荐回答(2个)
回答1:

const char **q=&p的意思就是*q=p,那么*q="12345"的实质就是p="12345",现在是p指向1;const char *s=(++p)++是s=p+1的意思,后面那个++给s赋值时不起作用,那就是s指向了2;printf("%c\n",*++s)是要输出s+1的内容(++在s前要先加1),那自然是3了。

回答2:

const char **q=&p; -- *q 和 p 相同。p=ABCDE *q=ABCDE

*q="12345"; -- p=12345

const char *s=(++p)++; s 指向 p[1], 就是"2"

p="abcde"; -- p 变化不影响 s

printf("%c\n",*++s); -- s 先加1个位置再输出,所以指向 p[2], 就是 "3".