我试图找出这个程序中的错误(C代码)。但我不清楚任何事情。我很感激一些帮助。我收到此错误main.c:10:11: error: lvalue required as increment operand
#include <stdio.h>
#define MAXIMUM 100
main()
{ int j;
float P[MAXIMUM];
for (j = 0; j < MAXIMUM; j++) {
*P = 0.0;
P++;
}
}
答案 0 :(得分:2)
数组类型和指针类型不相同,即使它们在许多情况下的工作方式类似。您无法更改数组指向的位置。你不能像指针那样递增或递减它。
使用:
for (j = 0; j < MAXIMUM; j++) {
P[j] = 0.0;
}
如果要使用指针,可以创建指向数组的指针,然后递增它。
float* ptr = P;
for (j = 0; j < MAXIMUM; j++) {
*ptr = 0.0;
ptr++;
}
答案 1 :(得分:0)
如果你想在for
循环中使用指针(就像你现在一样),你应该声明如下:
float P_array[MAXIMUM];
float *P = P_array;
答案 2 :(得分:0)
首先要突出显示......
不要使用......
main()
使用
int main(void)
第二......你创建了一个数组,而不是一个* P
的指针改为
#include <stdio.h>
#define MAXIMUM 100
int main(void)
{ int j;
float P[MAXIMUM]; // Create array
for (j = 0; j < MAXIMUM; j++) //First loop, j = 0. Second loop, j = 1
{
P[j] = 0.0;
}
return 0;
}
如果你想打印结果
#include <stdio.h>
#define MAXIMUM 100
int main(void)
{ int j;
float P[MAXIMUM]; // Create array
for (j = 0; j < MAXIMUM; j++) //First loop, j = 0. Second loop, j = 1
{
P[j] = 0.0;
printf("%d: %d", j, P[j]);
}
return 0;
}