C for ios --- 二维数组与函数

二维数组与函数

1.二维数组的元素作为函数参数

  • 二维数组的元素就相当于变量,作为函数参数与变量相同
~~ void test(char c);
~~ int main(int argc, const char * argv[]) {
~~     char cs[2][3] =
~~     {
~~         {'l', 'n', 'j'},
~~         {'l', 'm', 'j'}
~~     };
~~     printf("cs[0][0] = %c\n", cs[0][0]);
~~     test(cs[0][0]);
~~     printf("cs[0][0] = %c\n", cs[0][0]);
~~     return 0;
~~ }
~~ void test(char c)
~~ {
~~     c = 'w';
~~     printf("我被执行了\n");
~~ }
~~ 
~~ 输出结果:
~~ cs[0][0] = l
~~ 我被执行了
~~ cs[0][0] = l

2.二维数组中的一维数组作为函数

  • 二维数组的一维数组实际上就是一个一维数组,作为函数参数与一维数组相同
~~ void test(char c[]);
~~ int main(int argc, const char * argv[]) {
~~     char cs[2][3] =
~~     {
~~         {'l', 'n', 'j'},
~~         {'l', 'm', 'j'}
~~     };
~~     printf("cs[0][0] = %c\n", cs[0][0]);
~~     test(cs[0]);
~~     printf("cs[0][0] = %c\n", cs[0][0]);
~~     return 0;
~~ }
~~ void test(char c[])
~~ {
~~     c[0] = 'w';
~~     printf("我被执行了\n");
~~ }
~~ 输出结果:
~~ cs[0][0] = l
~~ 我被执行了
~~ cs[0][0] = w

3.二维数组作为函数参数

  • 二维数组作为函数参数是地址传递
  • 二维数组作为函数形参,参数中一维数组的元素个数不可以省略
~~ void test(char cs[2][]) // 错误写法
~~ {
~~     printf("我被执行了\n");
~~ }
~~ 
~~ void test(char cs[2][3]) // 正确写法
~~ {
~~     printf("我被执行了\n");
~~ }
~~ 
~~ void test(char cs[][3]) // 正确写法
~~ {
~~     printf("我被执行了\n");
~~ }
~~ 
  • 二维数组作为函数参数,在被调函数中不能获得其有多少行,需要通过参数传入。
~~ void test(char cs[2][3])
~~ {
~~     int row = sizeof(cs);
~~     printf("row = %zu\n", row);
~~ }
~~ 输出结果:
~~ row = 8
  • 二维数组作为函数参数,在被调函数中可以计算出二维数组有多少列
~~ void test(char cs[2][3])
~~ {
~~     size_t col = sizeof(cs[0]);
~~     printf("col = %zd\n", col);
~~ }
~~ 输出结果:
~~ col = 3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值