#include <stdio.h>
void fun(char *p) {
if (p) {
printf("%c", *p);
p++;
}
}
int main() {
fun("Y32Y567");
return 0;
}
输出:Y
预期输出:Y32Y567
我的问题是为什么它没有按预期方式工作?
最佳答案
fun
函数在进入if
时只打印一个字符。您可能打算使用 while
循环,而不是单个 if
条件。此外,您的条件是错误的 - 只要 p
不是 NULL
,它的计算结果就是 true-thy,如果您传递的是字符串文字,则不会发生这种情况。您可能打算测试 *p
,即字符 p
指向:
void fun(char* p)
{
while (*p) /* Here */
{
printf("%c",*p);
p++;
}
}
关于arrays - 通过在 c 中迭代打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68230314/