我正在尝试使用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行之间的比较。
我无法理解。有什么想法吗?
答案 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++) {
中找到此解决方案
答案 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]);
}
}