二维数组作为参数传递

1.在函数中传递二维数组,可以用指针的形式,也可用数组的形式,但是一定要每一行的长度(也就是列的个数)
例如:int function(char (*p)[10])或者 int function(char arr[3][10])
如果不定义行的长度,就无法知道什么时候进入下一行
2.对二维数据赋值字符串时,可以在初始化时赋值,也可以在利用strcpy

 1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 int function(char (*p)[10]) /*第一种传递方式,使用指针的形式,不是直接使用**p这种模式*/
  5 {       
  6         int i=0; 
  7         for(i=0; i<3; i++)
  8         {       
  9                 strcpy(*p, "hello11");/*对数组每一行进行赋值*/
 10                 p=p+1;/*二级指针加1,指向下一行*/
 11         }
 12         p=p-3;/*指针回复到最开始的位置*/
 13         for(i=0; i<3; i++)
 14         {       
 15                 printf("p = %s\n", *(p+i));
 16         }
 17         return 1;
 18 }
 19 
 20 /*
 21 int function(char arr[3][10])/*第二种传递方式*/
 22 {
 23         int i=0;
 24         for(i=0; i<3; i++)
 25         {
 26                 strcpy(arr[0], "hello");
 27                 strcpy(arr[1], "asdd");
 28                 strcpy(arr[2], "word");
 29         }
 30         for(i=0; i<3; i++)
 31         {
 32                 printf("p = %s\n", arr[i]);
 33         }
 34         return 1;
 35 }*/
 36 int main(void)
 37 {
 38         int ret = 0;
 39         int i;
 40         char arr[3][10] = {0};/*二维数据组初始化*/
 41         char *str1="kayshi";
 42         char *str2;
 43         str2=str1;
 44         ret = function(arr);/*函数传递二维数组*/
 45         for(i=0; i<3; i++)
 46         {
 47                 printf("%s\n",arr[i]);
 48         }
 49         printf("str1:%s\n", str1);
 50         printf("str2:%s\n", str2);
 51         return 0;
 52 }

p = hello11
p = hello11
p = hello11
hello11
hello11
hello11
str1:kayshi
str2:kayshi

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值