C ++ - 错误:在'<<'之前预期的primary-expression代币

时间:2011-02-13 11:19:49

标签: c++ pointers

当我添加此语句时(the_pointer的类型为int *)

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

编译器返回以下错误:

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

为什么?

感谢。

4 个答案:

答案 0 :(得分:5)

根据你对你的问题的评论,你有这样的事情:

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

这是一个语句,因为在x或y之后没有半冒号语句终止符。但由于z之后的分号,下一条这样的线会失败。

答案 1 :(得分:0)

<<是一个带有两个参数的运算符 - 左手和右手。您只提供了右侧。将您的代码更改为:

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

并确保您#include <iostream>靠近源文件的顶部,以便您可以使用std::cout

答案 2 :(得分:0)

因为<<不是一元前缀运算符,所以它需要两个操作数。当用于流输出时,左操作数是输出流,右操作数是您要发送到流的操作数。结果是对同一个流的引用,因此您可以向其附加更多<<子句。但是,在任何情况下,您都需要一个左操作数。

答案 3 :(得分: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;
}