tyomitch писал(а):Хм, хранятся в виде последовательности байт, передаётся указатель на первый байт, он же начало строки. В конце строки стоит нулевой байт - признак конца. Вот и всё...
2 Tyomitch. Да, а переменная, содержащая массив, в C на деле указатель на первый элемент. С этим "непонятно чем в строке" я просто дико сглупил, и не прочел описание функции.
Я сейчас имею в виду больше VB. Вот именно это (то что в цитате) я знаю, писал на C, но я не знаю точно, как
в VB отводится память под строки. Там вроде только длина строки где-то указывается, то-ли в начале, то-ли в конце... И вот, например, вопрос: часть параметров мы передаем в API-шные функции As String, и я никогда не заботился о том, чтобы добавить там в конце vbNullChar или еще чего. И они воспринимаются нормально: ByVal SomeStringParameter As String и всё! Почему? По идее, поведение при этом непредсказуемо - если строка не оканчивается на "\0", то СИшная прога считывает и содержимое следующих ячеек памяти (шаг в соотв. с размерностью типа char), как "продолжение" массива, а у меня все работает...