条件部分如何在此循环中运行?

时间:2016-12-11 07:52:12

标签: c for-loop

for循环的条件部分如何在这个程序中工作。请任何人向我解释.phone [i] [0] [0]表示首先列出第一个字符串和第一个字母。

#include<stdio.h>
#include<string.h>

char phone[][2][40] = {

    "Fred","555-1010",
    "Barney","555-1234",
    "Ralph","555-2347",
    "Tom","555-8396",
    "",""
};


int main(void)
{
    char name[80];
    int i;

    printf("Name? ");
    gets(name);

    for(i=0; phone[i][0][0]; i++)
        if(!strcmp(name, phone[i][0]))
        printf("Number: %s", phone[i][1]);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

null字符的评估结果为退出条件中的false,这就是您在phone[i][0][0]中所做的事情。并且你的for循环将在i=4或当你到达数组中的第五个条目时终止。

由于旁注从不使用gets。用户fgets改为在评论中指出,

fgets(name,40,stdin); // 40 max chars including null character.