Показать сообщение отдельно
Старый 25.07.2014, 01:12   #2
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Как это работает?

int strlen(char *s){
int length;
for (length = 0; *s; length++, s++);
return length;
}
s это указатель на участок памяти, в котором символ строки (первая буква изначально).
цикл инкрементирует указатель, т.е. с каждой итерацией, s ссылается на след. символ.
*s даёт значение символа по указателю.
когда *s выдаёт нуль-байт, цикл прерывается.

такой же принцип в последнем примере, только там вместо инкрементирования длины в цикле, юзается разница между указателем на конец строки и на начало.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (25.07.2014)