我有以下简单的 c 程序,我试图在 CLion 中运行,但告诉我我的 char 需要是一个指针,我已经将其设置为指针并声明为数组 abc,所以我不确定问题是什么是或者如何调试呢!该代码最初是一个讲座的示例,我添加了指针声明以查看运行它时会发生什么。任何帮助将不胜感激。
#include <stdio.h>
#include <stdint.h>
int main() {
char *a;
char abc[5];
a = abc;
int i = 0;
while (1 == scanf("/%[^/ \t\n]", a[i++]))
printf(">%s<\n", a[i-1]);
}
最佳答案
尽管 a
是一个指针,但 a[i++]
却不是。一般来说,a[x]
相当于*(a + x)
,所以在你的情况下就好像你有*(a + i++)
,其中 *
取消引用指针。您可以使用 &a[i++]
将其转回指针,或使用 a + i++
。
关于c - 简单的C指针程序,未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919566/