二维数组与指针的相关讨论

http://blog.chinaunix.net/uid-25324849-id-336253.html

讨论的很深入。

char **pointer可以接受a[M][N]的赋值操作,但是不能作为形参接受实参的操作。

一下给出了两种实现二维数组的传递实现:

void Print1(char (*p)[20], int n)//n为二维数组中一维数组的个数

//void Print1(char p[][20], int n) 两种声明都行,{

int i;

for(i = 0; i < n; i++)  

    {  

        printf("array[%d]= %s\n",  i,*(p+i));  

    }

}

采用一个指向字符串的指针实现:

Print2(char_array, 4, 20);

void Print2(char *p, int row, int col)

{

int i,j;

for(i = 0; i < row; i++)  

    {  

j = 0;

        while (p[i*col+j])

        {

printf(" %c ", p[i*col+j]);

j++;

        }

printf("\n");

    }

}



转载于:https://my.oschina.net/jieshi0914/blog/114347

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值