5

「Lvalue required」のエラーを生成するコードがあります。コードは次のとおりです。

     #include<stdio.h>
     #include<conio.h>
     #define max 10
     int main()
     {
      printf("%d",max++);
      return 0;
     }

上記のコードで左辺値エラーが発生することは明らかだったので、コードを次のように変更しました

     int a;
     printf("%d",a=max++); 

定数の値が適切な変数に割り当てられたと思いましたが、それでもエラーが発生しました。それから私はチェックしました

     printf("%d",a=max+1);

エラーなしで動作します。コードの 2 番目の問題は何ですか?

4

5 に答える 5

0

++演算子には、そのオペランドの値を更新するという副作用があることに注意してください。これが機能するためには、オペランドはlvalueでなければなりません。これは、メモリの読み取りまたは変更が可能なメモリ位置を参照する式です。残念ながら、 のような整数定数用にメモリが確保されていない10ため、エラー メッセージが表示されます。

于 2013-09-09T13:28:50.593 に答える