C ++ - ошибка: ожидаемое первичное выражение перед маркером << << - PullRequest
1 голос
/ 13 февраля 2011

Когда я добавляю этот комментарий (the_pointer имеет тип int *)

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

Компилятор возвращает следующую ошибку:

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

Почему это?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 13 февраля 2011

Судя по вашему комментарию к вашему вопросу, у вас было что-то вроде этого:

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

Это все одно утверждение, потому что после x или y нет завершающей точки с запятой.Но следующая такая строка не будет выполнена из-за точки с запятой после z.

0 голосов
/ 13 февраля 2011

Поскольку << не является унарным префиксным оператором, ему нужны два операнда. При использовании для вывода потока левый операнд является выходным потоком, а правый операнд - это то, что вы хотите отправить потоку. Результатом является ссылка на тот же поток, так что вы можете добавить к нему больше << предложений. В любом случае, однако, вам всегда нужен левый операнд.

0 голосов
/ 13 февраля 2011

Следующая программа компилируется и работает нормально:

#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;
}
0 голосов
/ 13 февраля 2011

<< - это оператор, который принимает два аргумента - левый и правый.Вы предоставили только правую сторону.Измените свой код на:

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

И убедитесь, что вы #include <iostream> в верхней части исходного файла, чтобы вы могли использовать std::cout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...