int main()
{
int x[3]={4,5,6};
int *p=x;
p +1=p;/*compiler shows error saying
lvalue required as left
operand of assignment*/
cout<<p 1;
getch();
}
代入演算子を使用しているが、使用方法や場所が間違っていると、このタイプのエラーが発生します。
次のように入力したとします。
p + 1 = p;エラーが発生します!!
これと同じエラーが発生します:
if(ch> = 'a' && ch = 'z')
ご覧のとおり、私はif()ステートメントで割り当てようとしました!!!
私はばかげています!!!正しい??
ハハ
実際には、より少ない(<)記号を与えるのを忘れました
if(ch> = 'a' && ch <= 'z')
エラーが発生しました!!
それは単なるタイプミスです(私は推測します)-
p+=1;
の代わりに p +1=p;
必要とされている 。
名前が示すように、lvalue
式は代入演算子の左側のオペランドにする必要があります。
簡単に言えば、左辺値は割り当ての左側に表示できるもので、通常は変数または配列要素です。
したがって、int *p
の場合、p
は左辺値です。 p+1
は有効な式であり、左辺値ではありません。
p
に1を追加する場合、正しい構文は次のとおりです。
p = p + 1;