【C/C++】指针与函数传参

1、值传递

2、地址传递

注意:如果实参是一个普通变量,地址传参的话就需要形参是一级指针,
如果实参是一个一级指针,地址传参的话就需要形参是一个二级指针,
以此类推

3、传数组:

将数组作为参数传递给函数,不存在复制传参和地址传参,本质都是地址传参,所以在函数
内部对数组进行改变,则函数执行完毕后,原本的数组也会改变,因为传递给函数的都是数
组的地址

1、传一维数组

1 //传一维数组
2 //void fun1(int p[])//形式1
3 void fun1(int *p)//形式2(常用)
4 {
5 printf("%d\n",p[2]);
6 printf("%d\n",*(p+3));
7 }

2、传二维数组

//传二维数组
16 //void fun2( int p[][4] )//形式1
17 void fun2( int (*p)[4] )//形式2:通过数组指针
18 {
19 //p[x][y] <==> *(*(p + x) + y)
20 printf("%d\n", p[0][2]);
21 printf("%d\n", *(*(p+1) + 2));
22 }

3、传指针数组


//传递指针数组
void funcArray1(char **p,int len){

  int i;
  for(i=0;i<len;i++){
      printf("item[%d] = %s\n",i,p[i]);
    }

}


int main(){

  char * user[]={"corporation","convinced","facilitate"};
  funcArray1(user,3);

return 0;
}

这其实也意味着:

指针数组名 等同于一个二级指针

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值