【发布时间】:2021-09-14 17:03:29
【问题描述】:
#include <stdio.h>
void fun(char *p) {
if (p) {
printf("%c", *p);
p++;
}
}
int main() {
fun("Y32Y567");
return 0;
}
输出:Y
预期输出:Y32Y567
我的问题是为什么它没有按预期的方式工作?
【问题讨论】:
-
为什么你会期望从没有迭代循环的代码路径中进行任何迭代,也没有递归来模拟所说的相同? 在调试器中运行您的代码。你会看到这一切都是进入函数,测试
p,然后打印Y,然后递增p(没有明显的原因),然后退出函数,然后退出main。
标签: arrays c pointers char c-strings