Непонятки с указателем типа void* - C (СИ)
Формулировка задачи:
Всем привет.
Имеем следующий, редко используемый в быту нормальных программистов, код:
Если c = 0x77
Если c = 0x88
Что мною упущено в теории, что так происходит при разных значениях "
#include <stdio.h> int main() { int a = 0x11223344; char c = 0x77; // or 0x88 void *b = &a; printf("%p %p %p %p\n", *((char*)b + 3), *((char*)b + 2), *((char*)b + 1), *(char*)b); *((char*)b + 2) = c; printf("%p %p %p %p\n", *((char*)b + 3), *((char*)b + 2), *((char*)b + 1), *(char*)b); getchar(); return 0; }
00000011 00000022 00000033 00000044
00000011
00000077
00000033 00000044
00000011 00000022 00000033 00000044
00000011
FFFFFF88
00000033 00000044char c
" ?Решение задачи: «Непонятки с указателем типа void*»
textual
Листинг программы
for(char i=1;i;i++) printf(" %x %d %c",i,i,i);
Объяснение кода листинга программы
Код, который вы предоставили, выполняет следующие действия:
- Объявляет переменную типа char с именем
i
и инициализирует её значением 1. - Устанавливает формат вывода в шестнадцатеричную систему с помощью функции printf.
- Выполняет цикл for, который продолжается до тех пор, пока значение переменной
i
больше или равно нулю. - Внутри цикла выводит на экран значение переменной
i
в шестнадцатеричной системе счисления, затем в десятичной системе счисления и в символьной системе счисления. - После выполнения цикла, код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д