-kasha 发表于 2023-11-26 21:42:44

大神这报错 是哪里错啦

#include<stdio.h>
int main()
{
        int a={3,7,9,11,0,6,7,5,4,2,};
        int b={0};
        int *p;
        int i=9;
        for(i=9;i>=0;i--){
                p=a;
                printf("%d ",p);
                p++;
        }
        return 0;
}

assignment makes pointer from integer without a cast

大神这报错 是哪里错啦

FishC_GPT 发表于 2023-11-26 21:42:55

这个报错的原因是你在定义变量a和b的时候,使用了大括号初始化,但是大括号的初始化只适用于数组,而不适用于普通的变量。

另外,你在循环中将指针p赋值为a,这个赋值操作也是有问题的,因为a是一个整型数组,不能直接赋值给一个指针。

修复这个问题,你可以这样修改代码:

#include <stdio.h>

int main()
{
    int a[]={3,7,9,11,0,6,7,5,4,2};
    int b={0};
    int *p;
    int i;

    p=a;
    for(i=9;i>=0;i--){
      printf("%d ",*p);
      p++;
    }

    return 0;
}

修改后的代码中,变量a是一个整型数组,b是一个包含一个元素的整型数组。变量p是一个指针,用来指向a中的元素。在循环中,我们通过*p来输出p指针指向的元素。

希望能够帮到你!如果还有其他问题,请随时提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 大神这报错 是哪里错啦