Что выводится массив / указатель в этом c коде - PullRequest
0 голосов
/ 17 февраля 2020
    #include <stdio.h>

    int main()
     {

     char*str="↔⬆?12345";
     printf("%d",*str );
     return 0;
   }

, пожалуйста, помогите мне найти вывод данного кода

1 Ответ

2 голосов
/ 17 февраля 2020

Предполагая, что файл закодирован с использованием UTF-8, строка состоит из этих байтов в шестнадцатеричном виде:

E2 86 94 E2 AC 86 F0 9F 99 82 31 32 33 34 35

В системе, где char означает unsigned char, первый символ равен 226.

В системе с двумя дополнениями, где char означает signed char, первый символ равен -30.

В системе с одним дополнением, где char означает signed char, первый char -29.

Это значение будет преобразовано в эквивалент int, передано в printf и напечатано.

...