История изменений
Исправление Iron_Bug, (текущая версия) :
нет. просто символы кодируются по-разному. а указатель хранит адрес первого элемента, за которым вся эта каша юникодовская из однобайтных и многобайтовых символов лежит последовательно. возьми hex редактор и посмотри на код. там строка на кириллице будет выглядеть иначе, чем строка на английском.
да, тут надо учитывать, что сам код тоже может быть в разных кодировках. и компилятор это просечёт и скомпилирует константные строки в той кодировке, которая у файла использована. можно, например, через iconv сконвертить файл с кодом в ISO-8859-5 и если в консоли поставить эту кодировку, то вывод будет так же на русском языке, но длина строки будет 12.
это как раз то, о чём я писала выше: с кодировками возникает сразу много дополнительных вопросов, часть которых непосредственно к С не относится. это реализации разных кодировок и взаимодействие с настройками консоли (этим тоже можно управлять из кода). там нет ничего особо сложного. но надо иметь в виду, что есть особенности.
Исправление Iron_Bug, :
нет. просто символы кодируются по-разному. а указатель хранит адрес первого элемента, за которым вся эта каша юникодовская из однобайтных и многобайтовых символов лежит последовательно. возьми hex редактор и посмотри на код. там строка на кириллице будет выглядеть иначе, чем строка на английском.
да, тут надо учитывать, что сам код тоже может быть в разных кодировках. и компилятор это просечёт и скомпилирует константные строки в той кодировке, которая у файла использована. можно, например, через iconv сконвертить этот файл в ISO-8859-5 и если в консоли поставить эту кодировку, то вывод будет так же на русском языке, но длина строки будет 12.
это как раз то, о чём я писала выше: с кодировками возникает сразу много дополнительных вопросов, часть которых непосредственно к С не относится. это реализации разных кодировок и взаимодействие с настройками консоли (этим тоже можно управлять из кода). там нет ничего особо сложного. но надо иметь в виду, что есть особенности.
Исходная версия Iron_Bug, :
нет. просто символы кодируются по-разному. а указатель хранит адрес первого элемента, за которым вся эта каша юникодовская из однобайтных и многобайтовых символов лежит последовательно. возьми hex редактор и посмотри на код. там строка на кириллице будет выглядеть иначе, чем строка на английском.