Завершаются ли аргументы char * argv[] в основном нулем?

Итак, мне интересно, всегда ли параметры командной строки заканчиваются нулем? Google, кажется, говорит да, и компиляция в GCC показывает, что это так, но могу ли я гарантировать, что это всегда будет правдой?

int main(int argc, char** argv)
{
    char *p;

    for(int cnt=1; cnt < argc; ++cnt)
    {
        p = argv[cnt];
        printf("%d = [%s]\n", cnt, p);
    }
    return 0;
}

$ MyProgram -arg1 -arg2 -arg3
1 = -arg1
2 = -arg2
3 = -arg3
41
задан X. Liu 28 March 2017 в 18:41
поделиться