通过main传递参数

时间:2012-11-24 16:41:51

标签: c

下面的代码在我通过./a.out abc abd

在ubuntu终端中运行时打印垃圾值
#include<stdio.h>

int main(int size_of_args, char args[10][10])
{
    while(size_of_args)
        printf("%s\n",args[--size_of_args]);

    return 0;
}

但下面的代码运行正确请解释。

#include<stdio.h>

int main(int size_of_args, char *args[])
{
    while(size_of_args)
        printf("%s\n",args[--size_of_args]);

    return 0;
}

1 个答案:

答案 0 :(得分:4)

因为char args[10][10]是一个10x10字符的数组,而char *args[]是指向(数组)字符的指针(数组)的指针。后者是参数传递给main的方式。

合理的编译器会在第一种情况下警告您main的签名错误。