使用0-100之间的数字填充数组

时间:2018-01-22 07:45:49

标签: c arrays fill

我正在尝试使用0-100的整数填充数组。

这是我的代码:

int main()
{   
    int a[100];
    for(int i = 0; i < a; i++)
    {
        a[i] = i;
        printf("\n%d\n", a[i]);
    }
}

我收到此错误:

  

指针和整数(int和int)在for行之间的比较。

我无法理解。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

是的,您正在将指针与整数进行比较。这就是错误的原因。

for(size_t i=0; i<sizeof(a)/sizeof(a[0]); i++) {

是你想要的,可以用C语言完成。请注意,sizeof运算符会在size_t中生成值。

如果您不知道sizeof正在做什么 - 它基本上是数组对象的总字节数 - 除以每个元素的大小 - 导致元素数量。

如果你在想那个指针来自哪里?

注意这里有一件事a被转换为第一个元素的指针(数组衰减) - 所以它只不过是指向第一个元素的指针。

答案 1 :(得分:1)

for循环中的取消条件错误。 i<a您正在将int i变量与指向数组内存位置的指针a进行比较。您需要计算数组的长度:

for(int i=0; i<sizeof(a)/sizeof(int); i++) {

但您可以在this 9 year old answer

中找到此解决方案

答案 2 :(得分:0)

这应该对你有用,

    int main()
{   
    int a[100];
    int n = sizeof(a) / sizeof(a[0]); //Get the size of the array
    for(int i=0; i<n; i++) { // loop through each elements of the array
        a[i] = i;
        printf("\n%d\n", a[i]);
    }
}