不用库函数查询字符数组的元素个数但是不知道为什么

#include<stdio.h>
#include<stdlib.h>
#include

int main ()
{

char chars[256];
scanf ("%[^\n]", chars);
char *c = chars;
int len;
for (len = 0; *c; len++, ++c)
    ; //这里的*c是怎么判定循环结束的
puts(chars);
cout << len << '\n';

}

c中0为false,非零为true,*c为字符串结束标记时,这条件为false,结束循环