Я пытаюсь распечатать строку wchar_t*. Ниже приведен код:
#include <stdio.h>
#include <string.h>
#include <wchar.h>
char *ascii_ = "中日友好"; //line-1
wchar_t *wchar_ = L"中日友好"; //line-2
int main()
{
printf("ascii_: %s\n", ascii_); //line-3
wprintf(L"wchar_: %s\n", wchar_); //line-4
return 0;
}
//Output
ascii_: 中日友好
Вопрос:
Видимо, в строке 1 я не должен присваивать указателю char* символы CJK, но я только что это сделал, и вывод строки 3 корректен, так почему же? Как printf() в строке 3 может присваивать мне не-ascii символы? Он как-то знает кодировку?
Я предполагаю, что код в строке-2 и в строке-4 корректен, но почему я не получил вывода в строке-4?