-1

下面的代码在我通过 ./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;
}
4

1 回答 1

4

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

一个合理的编译器会在第一种情况下警告您,您对main.

于 2012-11-24T16:48:34.510 回答