fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. char cr1 = 'A', cr2 = 'B';
  5. int in1, in2 = 0;
  6. double db1 = 3.0, db2 = 4.0;
  7. char *ch;
  8.  
  9. // Вывод адресов и размеров
  10. printf("cr1\t\t%p\t%zu\n", (void*)&cr1, sizeof(cr1));
  11. printf("cr2\t\t%p\t%zu\n", (void*)&cr2, sizeof(cr2));
  12. printf("in1\t\t%p\t%zu\n", (void*)&in1, sizeof(in1));
  13. printf("in2\t\t%p\t%zu\n", (void*)&in2, sizeof(in2));
  14. printf("db1\t\t%p\t%zu\n", (void*)&db1, sizeof(db1));
  15. printf("db2\t\t%p\t%zu\n", (void*)&db2, sizeof(db2));
  16. printf("ch\t\t%p\t%zu\n", (void*)&ch, sizeof(ch));
  17.  
  18. // Для сравнения — тоже проанализируем i1 (хотя значение не используется в сравнении)
  19. in1 = 0x1A2B3C4D;
  20. ch = (char*)&in1;
  21.  
  22. printf("\n Содержимое in1 = 0x%08X по байтам:\n", in1);
  23. for (int i = 0; i < (int)sizeof(in1); i++) {
  24. printf("Байт %d: 0x%02X\n", i, (unsigned char)ch[i]);
  25. }
  26.  
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
cr1		0x7ffc46812046	1
cr2		0x7ffc46812047	1
in1		0x7ffc46812048	4
in2		0x7ffc4681204c	4
db1		0x7ffc46812050	8
db2		0x7ffc46812058	8
ch		0x7ffc46812060	8

 Содержимое in1 = 0x1A2B3C4D по байтам:
Байт 0: 0x4D
Байт 1: 0x3C
Байт 2: 0x2B
Байт 3: 0x1A