2011-02-13 114 views
1

當添加此statment(the_pointer的類型是int *的)C++ - 錯誤:前預期主表達式 '<<' 令牌

<<"\nThe contents of the variable the_pointer is pointing at is : "<<*the_pointer; 

編譯器返回以下錯誤:

error: expected primary-expression before '<<' token

這是爲什麼?

謝謝。

+2

你需要使用`std :: cout << ...`。僅使用<< <<是語法錯誤。 – 6502 2011-02-13 11:22:11

回答

0

<<是一個運算符,它有兩個參數 - 左手和右手。你只提供了右手邊。你的代碼更改爲:

std::cout << "\nThe contents of the variable the_pointer is pointing at is : " << *the_pointer; 

並確保您#include <iostream>附近的源文件的頂部,這樣就可以使用std::cout

0

因爲<<不是一元前綴運算符,所以需要兩個操作數。當用於流輸出時,左邊的操作數是一個輸出流,右邊的操作數是你想要發送給流的內容。結果是對同一個流的引用,因此您可以在其中添加更多<<子句。但無論如何,您始終需要左操作數。

0

下面的程序編譯和運行良好:

#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; 
} 
5

通過您的問題您的評論來看,你有這樣的事情:

std::cout << x 
      << y 
      << z ; 

這都是一個說法,因爲沒有x或y之後的分號結尾語句。但是下一個這樣的行會失敗,因爲z之後的分號。

相關問題