Язык не позволяет использовать универсальные имена символов для символов, которые вы можете легко написать без использования UCN. Вот почему '\u0000'
не разрешено. (Я не совсем уверен, в чем смысл этого правила.)
Поскольку var1
- это массив wchar_t
, L'\0'
- наиболее простая вещь для использования.
Но поскольку char
, wchar_t
и int
являются целочисленными типами, и поскольку значения любого интегрального типа могут быть назначены объекту другого целочисленного типа (при условии, что значение находится в диапазоне тип цели), будет работать любое из следующего:
var1[79] = L'\0'; // best
var1[79] = '\0'; // char value converted to wchar_t
var1[79] = 0; // int value converted to wchar_t