當添加此statment(the_pointer的類型是int *的)C++ - 錯誤:前預期主表達式 '<<' 令牌
<<"\nThe contents of the variable the_pointer is pointing at is : "<<*the_pointer;
編譯器返回以下錯誤:
error: expected primary-expression before '<<' token
這是爲什麼?
謝謝。
當添加此statment(the_pointer的類型是int *的)C++ - 錯誤:前預期主表達式 '<<' 令牌
<<"\nThe contents of the variable the_pointer is pointing at is : "<<*the_pointer;
編譯器返回以下錯誤:
error: expected primary-expression before '<<' token
這是爲什麼?
謝謝。
<<
是一個運算符,它有兩個參數 - 左手和右手。你只提供了右手邊。你的代碼更改爲:
std::cout << "\nThe contents of the variable the_pointer is pointing at is : " << *the_pointer;
並確保您#include <iostream>
附近的源文件的頂部,這樣就可以使用std::cout
。
因爲<<
不是一元前綴運算符,所以需要兩個操作數。當用於流輸出時,左邊的操作數是一個輸出流,右邊的操作數是你想要發送給流的內容。結果是對同一個流的引用,因此您可以在其中添加更多<<
子句。但無論如何,您始終需要左操作數。
下面的程序編譯和運行良好:
#include <iostream>
int main(int argc, char *argv[]) {
int val = 10;
int *ptr_val = &val;
std::cout << "pointer value: \n";
std::cout << *ptr_val;
return 0;
}
通過您的問題您的評論來看,你有這樣的事情:
std::cout << x
<< y
<< z ;
這都是一個說法,因爲沒有x或y之後的分號結尾語句。但是下一個這樣的行會失敗,因爲z之後的分號。
你需要使用`std :: cout << ...`。僅使用<< <<是語法錯誤。 – 6502 2011-02-13 11:22:11