欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Error:ivalue require as left operant of assignment

程序员文章站 2022-09-28 08:29:14
Error:ivalue require as left operant of assignment 解答:该错误的意思是左操作数必须为左值,这个发生错误的原因在于赋值符号的左边不能是已确定的值,如: 3=n;或3=2是错的; 如果是对函数赋值,如: #includeusing ......

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;