Рубрики

Выход программы | Указатель на постоянный или постоянный указатель?

Прогнозировать выход нижеуказанной программы.

int main()

{

    int x = 5;

    int * const ptr = &x;

    ++(*ptr);

    printf("%d", x);

         

    getchar();

    return 0;   

}

Выход: 6

Explananation:
См. Следующие объявления, чтобы узнать разницу между указателем на константу и указателем на константу.

int * const ptr -> ptr — постоянный указатель. Вы можете изменить значение в месте, указанном указателем p, но вы не можете изменить p, чтобы оно указывало на другое местоположение.

int const * ptr -> ptr — указатель на константу. Вы можете изменить ptr для указания другой переменной. Но вы не можете изменить значение, указанное в ptr.

Поэтому вышеприведенная программа работает хорошо, потому что у нас есть постоянный указатель, и мы не меняем ptr, чтобы он указывал на любое другое место. Мы только указываем значение, указанное в ptr.

Попробуйте программу ниже, вы получите ошибку компилятора.

int main()

{

    int x = 5;

    int const * ptr = &x;

    ++(*ptr);

    printf("%d", x);

        

    getchar();

    return 0;  

}

Рекомендуемые посты:

Выход программы | Указатель на постоянный или постоянный указатель?

0.00 (0%) 0 votes