Error:ivalue require as left operant of assignment

时间:2023-02-09 06:47:01

Error:ivalue require as left operant of assignment

解答:该错误的意思是左操作数必须为左值,这个发生错误的原因在于赋值符号的左边不能是已确定的值,如:

3=n;或3=2是错的;

如果是对函数赋值,如:

        

#include<iostream>
using namespace std;
int f1(int a[],int i){
return a[i];
}
int main(){
int a[10];
for(int i=0;i<10;i++){
a[i]=i;
cout<<a[i]<<endl;
}

f1(a,3)=6;    
for(int i=0;i<10;i++){
cout<<a[i];
}
}

本程序会发生 以上的错误 是因为函数f1()返回的是一个值而非变量等不确定的值;

解决办法:

1.将函数定义为引用类型   : int   &f1(int   a[]   ,int   i){......};  且使用引用类型之后,在赋值运算符的任何一边均可使用f1()函数;

2.使用指针类型显式调用该函数:  int * f1 (int    a[] ,  int   i){return  &a[i]  };   调用:  *f1(a,3)=6,即把a中下标为3的位置赋值为6;