zoukankan      html  css  js  c++  java
  • Error:ivalue require as left operant of assignment

    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;

            

  • 相关阅读:
    Java static 关键字 静态初始化块
    一致性哈希
    Java函数传递方式值传递
    Scala 小练习
    Scala 推荐递归编程
    白话 Scala 控制抽象
    函数柯里化(curry)
    Scala 闭包 closure
    Scala 参数(类型)推断
    xcode配置文件中,Architectures表示的意义
  • 原文地址:https://www.cnblogs.com/332hh/p/8866167.html
Copyright © 2011-2022 走看看