Рубрики

C | Классы хранения и классификаторы типов | Вопрос 19

#include <stdio.h>

int main()

{

    int x = 5;

    int * const ptr = &x;

    ++(*ptr);

    printf("%d", x);

    

    return 0;

}

(A) Ошибка компилятора
(B) Ошибка выполнения
(С) 6
(D) 5

Ответ: (с)
Объяснение: См. Следующие объявления, чтобы узнать разницу между указателем на константу и указателем на константу.
int * const ptr -> ptr — постоянный указатель. Вы можете изменить значение в месте, указанном указателем p, но вы не можете изменить p, чтобы оно указывало на другое местоположение.
int const * ptr -> ptr — указатель на константу. Вы можете изменить ptr для указания другой переменной. Но вы не можете изменить значение, указанное в ptr.
Поэтому вышеприведенная программа работает хорошо, потому что у нас есть постоянный указатель, и мы не меняем ptr, чтобы он указывал на любое другое место. Мы только указываем значение, указанное в ptr.

Тест на этот вопрос

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

C | Классы хранения и классификаторы типов | Вопрос 19

0.00 (0%) 0 votes