????C/C++??????????????????????????????????????????????????????????г?????????????????????????????£?GCC??????????

????????????β????????鰱????????????

??????????????????????β??????????????????

??????????

#include <stdio.h>

void subfun(int n?? char subargs[][5])
{
    int i;
    for (i = 0; i < n; i++) {
     printf("subargs[%d] = %s "?? i?? subargs[i]);
    }
}

void main()
{
    char args[][5] = {"abc"?? "def"?? "ghi"};
    subfun(3?? args);
}

?????????????β????????????????????鳤??

????????

#include <stdio.h>

void subfun(int n?? char (*subargs)[5])
{
    int i;
    for (i = 0; i < n; i++) {
     printf("subargs[%d] = %s "?? i?? subargs[i]);
    }
}

void main()
{
    char args[][5] = {"abc"?? "cde"?? "ghi"};
    subfun(3?? args);
}

?????????????β?????????

???????????α????????????????????

????????

#include <stdio.h>

void subfun(int n?? char **subargs)
{
    int i;
    for (i = 0; i < n; i++) {
     printf("subargs[%d] = %s "?? i?? subargs[i]);
    }
}

void main()
{
    char *a[3];
    char args[][5] = {"abc"?? "def"?? "ghi"};
    a[0] = args[0];  //equals with a[0] = &args[0][0];
    a[1] = args[1];
    a[2] = args[2];
    subfun(3?? a);  //?????subfun(3?? args);?????????
}

???????????????????????????????????????????????鴫??????????????????????á?

#include <stdio.h>

void subfun(int n?? char **subargs)
{
    int i;
    for (i = 0; i < n; i++) {
     printf("subargs[%d] = %s "?? i?? subargs[i]);
    }
}

void main()
{
    char *args[] = {"abc"?? "def"?? "ghi"};//equals with char *args[3] = {"abc"?? "def"?? "ghi"};
    subfun(3?? args);
}

??????????????http://blog.csdn.net/gqb666/article/details/8886687