一种循环C字符数组的骚操作

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char wenwa[] = "程劲小盆友在做什么";
    int _len = 0;
    while (wenwa[_len])
    {
        printf("%c", wenwa[_len]);
        _len++;
    }
    printf("\n");
    system("pause");
    return EXIT_SUCCESS;
}

看到while的循环条件,不禁让人叹为观止,这他妈的什么操作,详解如下:

  • 首先我们都知道c语言的字符数组作为结束的标志是单引号包裹的字符'\0'
  • wenwa[_len]意味着从字符数组的第0位开始读取信息,每次循环体中的_len++都向前推进,所以我们得以读取字符数组中的每一个字符
  • 如上所述,最终索引会推进到数组中的结束符'/0',从而wenwa[_len]会返回false,终止循环

 

posted @ 2019-02-02 12:00  saintdingtheGreat  阅读(152)  评论(0编辑  收藏  举报