为什么输出4时输出5

时间:2015-09-12 23:20:02

标签: c++ visual-studio visual-c++

我正在给它论证(嗨这是迈克尔)。但它输出了 字符串'1' - '嗨'
字符串'2' - 'this'
字符串'3' - '是' 字符串'4' - '迈克尔'
字符串总数:5
什么时候应该说字符串的总数是4

#include <stdio.h>
#include <stdlib.h>
/* print a given string and a number in a pre-determined format. */
void
print_string(int num, char* string)
{
    printf("String '%d' - '%s'\n", num, string);
}

int
main(int argc, char* argv[])
{
    int i;

    /* check for command line arguments */
    if (argc < 2) { /* 2 - 1 for program name (argv[0]) and one for a param. */
        printf("Usage: %s [<string> ...]\n", argv[0]);
        return(1);
    }

    /* loop over all strings, print them one by one */
    for (argc--, argv++, i = 1; argc > 0; argc--, argv++, i++) {
        print_string(i, argv[0]);  /* function call */
    }

    printf("Total number of strings: %d\n", i);

    getchar();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您看到5而不是4的原因是因为您在git log -p `ls -p | grep -v /` 处开始i,而不是1,并且在0循环中会增加:< / p>

for

在最后一次迭代中打印for (argc--, argv++, i = 1; argc > 0; argc--, argv++, i++) { // ^^^ } 后,循环计数器最后一次递增,为下一次打印输出产生String 4