Почему значение j составляет 11? - PullRequest
0 голосов
/ 19 апреля 2019

Мой код с использованием C ++

#include <iostream>

using namespace std;

int main() {
    int i = 10, j = 20, k;
    int* p = &i;
    int* q = &j;
    *p += 1;    
    p = &k;    
    *p = *q;    
    p = q;    
    *p = i;

    cout << j << endl;
    return 0;
}

Пожалуйста, объясните мне, почему j = 11?Я склоняюсь к тому, что это другое значение, но оно равно 11.

1 Ответ

1 голос
/ 19 апреля 2019

надеюсь, вы понимаете это, вам нужно знать, когда указатель указывает на память, и мы вызываем * pointer = valueX => memory будет установлено значение value.

#include <iostream>

using namespace std;

int main() {
    int i = 10, j = 20, k;
    int* p = &i; // p point to i =>*p=10
    int* q = &j; // q point to j =>*q=20
    *p += 1; // *p = *p + 1 => *p=11 => i = 11   
    p = &k; // p point to k   
    *p = *q; // *p = 20 => k = 20   
    p = q; // p point to j (q point to j)   
    *p = i; // set value of memory which p point to to value of i => *p = 11 => j = 11

    cout << j << endl;
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...