Рубрики

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

#include<stdio.h>

int main()

{

    char str[] = "GeeksQuiz";

    printf("%s %s %s\n", &str[5], &5[str], str+5);

    printf("%c %c %c\n", *(str+6), str[6], 6[str]);

    return 0;

}

(A) Ошибка во время выполнения
(B) Ошибка компилятора
(C) UIZ UIZ UIZ
ууу
(D) Викторина Викторина Викторина
ууу

Ответ: (Д)
Объяснение: В программе нет ошибок. Все следующие выражения означают одно и то же
& Ул [5]
& 5 [ул]
ул + 5
Поскольку компилятор преобразует операцию массива в указатели перед доступом к элементам массива, все вышеперечисленное приводит к тому же адресу.

Точно так же все следующие выражения означают одно и то же.
* (Ул + 6)
ул [6]
6 [ул]

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

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

0.00 (0%) 0 votes