Показать сообщение отдельно
Старый 25.07.2014, 01:06   #1
maltsevvv
AnyKey`щик
 
Регистрация: 03.07.2014
Сообщений: 4
Написано одно полезное сообщение
(для 2 участников)
Как это работает?

Раньше программировал на VB. Сейчас изучаю С++.
Встретил в интернете эти функции подсчёта симолов в строке.
С первой всё понятно. Перебираем символы пока не встретим '\0'.
int strlen(char s[]){
int length = 0;
for (; s[length] != '\0'; length++);
return (length);
}

Но почему работают две эти?
int strlen(char *s){
int length;
for (length = 0; *s; length++, s++);
return length;
}

int strlen(char *s){
char *p = s;
while (*p) p++;
return (p - s);
}

Сломал голову. Поясните как это работает?

С уважением Виктор
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо maltsevvv за это полезное сообщение:
SBJoker (25.07.2014), St_AnGer (25.07.2014)