for循环的操作

Jun*_*tes 1 c

我在嵌入式c工作了一个月,直到现在我遇到了简单的循环,如:

for(i=0;i<10;i++)
Run Code Online (Sandbox Code Playgroud)

但现在我遇到了一种新的for循环,它是:

for(t=0; string[t]; ++t)
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我这个循环是如何工作的.示例代码是:

#include <stdio.h>
#include <ctype.h>

void print_upper(char *string);

int main(void)
{
    char s[80];
    printf("Enter a string: ");
    gets(s);
    print_upper(s);
    printf(''\ns is now uppercase: %s", s);
    return 0;
}

/* Print a string in uppercase. */
void print_upper(char *string)
{
    register int t;
    for(t=0; string[t]; ++t)
    {
        string[t] = toupper(string[t]);
        putchar(string[t]);
    }
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*Joe 7

如果字符串以null结尾,则最后一个字符将为null.这评估为false.for语法的middle子句是一个布尔表达式.如果为真,则循环继续,如果为假,则循环终止.循环索引t字符串的字符,并递增t,这意味着它依次测试每个字符以查看它是否为"true".

因此,此语法将循环遍历字符串中的每个字符并在结尾处停止.