c - 简单的C指针程序,未运行

标签 c pointers declaration

我有以下简单的 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/

相关文章:

我们可以在 C 的 main 函数中定义函数原型(prototype)吗?

c - asctime时间输出错误

在不知道元素类型的情况下计算数值数组元素的平均值

c - 调试时使用 exit() 函数

c++ - int(int)& 或 int(int) const & 是什么类型?

c++ - 无法通过函数传递 vector 中的 ifstream 指针

c++ - 无法将 [[Float]] 数组传递给 Objective-C++

c++ - 无法将参数传递给 GTK 回调

arrays - GO显式数组初始化

C++ 指向成员函数的指针、声明