簡體   English   中英

使用#define 時需要左值作為增量操作數錯誤

[英]lvalue required as increment operand error when using #define

下面的代碼有什么問題,為什么我會收到這個錯誤?

#include <iostream>
#define A 1
using namespace std;

int main()
{
   cout <<A++; 
   return 0;
}

#define A 1不會生成名為A的變量。

它告訴您的計算機在編譯之前用1替換A所有話語。

所以,你的程序實際上是:

#include <iostream>
using namespace std;

int main()
{
   cout <<1++; 
   return 0;
}

並且您不能增加文字1

您可以在C++ 書籍中閱讀有關預處理器指令的更多信息。

#define A 1

A 不是有效的 c++ 左值,所以給了我們"lvalue required as increment operand"

int A; 

是有效的 c++ 左值並且可以工作,也可以是其他簡單的數字類型浮點數、無符號字符等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM