Компилятор от Visual Studio 2017
Имеется такой код, к нему сразу же возникают вопросы.
#include <iostream>
#include <clocale>
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "");
cout << "Русский язык.\n";
cout << argv[1] << endl;
return 0;
}
Результат работы:

Вопрос: Почему параметр верно отобразился ведь он типа char и должен был не поместиться в char?
Второй код.
#include <iostream>
#include <clocale>
using namespace std;
int main(int argc, wchar_t* argv[])
{
setlocale(LC_ALL, "");
wcout << L"Русский язык.\n";
wcout << argv[1] << endl;
return 0;
}
Результат работы:

Вопрос: Почему не отобразился текст параметра? Тип же верен.
Получается такое, что не верный тип, который не вмещает в себя символ юникода работает, а тип для юникода - нет.