您好,我对 c 编码很陌生,但我在 c 中收到一条错误消息,我不知道为什么

Hello, i am very new to coding in c, but i am getting an error message in c and i dont know why

提问人:gent9 提问时间:11/15/2022 最后编辑:Vlad from Moscowgent9 更新时间:11/15/2022 访问量:39

问:

#include <stdio.h>
int main(){
    int number[];
    scanf("%d", &number);
    int counter = 0;
    while (counter < number){
        printf("%d\n", counter);
        counter += 1;
    }
}

我收到一个错误,说整数不能与指针进行比较,但我不确定如何修复它,也不明白为什么它不起作用。

type here
c 语法错误 声明

评论

1赞 Andrew Henle 11/15/2022
编译器允许你编写?!?!它应该为此给你一个错误消息。您使用的是什么编译器?因为这可能是你在这里出现问题的根本原因。int number[];

答:

1赞 Vlad from Moscow 11/15/2022 #1

不完整类型的数组的此声明

int number[];

无效。

只需声明一个类似int

int number;

无需声明数组。

而不是 while 循环

int counter = 0;
while (counter < number){
    printf("%d\n", counter);
    counter += 1;
}

最好使用 for 循环,例如

for ( int counter = 0; counter < number; ++counter ){
    printf("%d\n", counter);
}

因为该变量仅在循环范围内使用。counter

0赞 Asheesh Kumar 11/15/2022 #2

是的,您将此声明为数组编号,并将其声明为整数,因为数组访问为指针可变。 整个 colde 是

int number[];

替换为

int number;

整个代码是:

 #include <stdio.h>
int main(){
    int number;
    scanf("%d", &number);
    int counter = 0;
    while (counter < number){
        printf("%d\n", counter);
        counter += 1;
    }
}