Рубрики

C | Строка | Вопрос 10

#include <stdio.h>

   

void my_toUpper(char* str, int index)

{

    *(str + index) &= ~32;

}

   

int main()

{

    char* arr = "geeksquiz";

    my_toUpper(arr, 0);

    my_toUpper(arr, 5);

    printf("%s", arr);

    return 0;

}

(A) GeeksQuiz
(B) Geeksquiz
(C) Зависит от компилятора

Ответ: (с)
Объяснение: Память для строкового arr выделена в области только для чтения / записи раздела данных. Выбор зависит от компилятора. В более новой версии компиляторов память выделяется в разделе «только для чтения» области данных. Поэтому любая модификация в строке невозможна.
В более старых версиях компиляторов, таких как Turbo-C, возможна модификация.
Тест на этот вопрос

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

C | Строка | Вопрос 10

0.00 (0%) 0 votes