ошибка: недопустимые операнды типов 'int *' и 'int' для двоичного оператора '* - PullRequest
0 голосов
/ 13 октября 2019

В этом коде я могу понять, что в закомментированном коде, который обрабатывает '* 2', возникает ошибка, потому что 'a' является адресом массива. Так что это может быть изменено. Но я не могу понять, почему строки 32 и 33 делают ошибку. Я думаю, что когда я сделал другую переменную-указатель с именем «b», я могу изменить переменную «b». Но это сделало меня ошибкой. Скажите пожалуйста, почему происходит ошибка ....

#include <iostream>

using namespace std;

/*
 * This is an example about pointer arithemtic
 */
int main()
{
    int a[5];

    for (int i = 0; i < 5; i++) {
        a[i] = i;
    }

    // pointer arithemtic for +
    for (int i = 0; i < 5; i++) {
        cout << a + i << "\n";
    }

    // pointer arithemtic for -
    int *c = a;
    for (int i = 1; i < 5; i++) {
        cout << a + i - c << "\n";
    }

    /* Try to compile the folloing region */
//     cout << a * 2 << "\n";
//     cout << a / 2 << "\n";
//
     int *b = a;
     cout << b * 2 << "\n";
     cout << b / 2 << "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...