指针数组作为参数在函数间传参,指针数组作为参数传递

  指针数组作为参数在函数间传参,指针数组作为参数传递

  自定义函数中的形参类型应该对应于函数调用中传递的实参类型。

  测试函数的类型是int,我们传递的参数A也是int类型。

  无效测试(整数){

  }

  int main(){

  int a=1测试(a);

  返回0;

  }好了,现在你知道函数参数传递的基本概念了!然后我们来分析一下数组传参和指针传参的代码!

  一维数组通过参数判断下面是真还是假!

  包括stdio.h

  //第一名

  void test(int arr[]){

  }

  //第二名

  void test(int arr[10]){

  }

  //第三名

  无效测试(int *arr){

  }

  //第四名

  void test2(int *arr[20]){

  }

  //第五名

  void test2(int **arr){

  }

  int main(){

  int arr[10]={ 0 };

  int * arr 2[20]={ 0 };

  测试(arr);

  test 2(arr 2);

  返回0;

  } 1号参数以数组形式接收,正确。

  2号也是数组的形式,没错。

  请注意,传递数组参数不会创建新数组。

  所以函数[]中的数字是多少并不重要

  3号数组名是第一个元素的地址,用指针接收。正确。

  NO.4 arr2是指针数组,(int *arr[20])对应原数组,正确。

  5号的数组名是第一个元素的地址,arr2的第一个元素是int*类型。

  可以用二级指针接收。正确!

  二维数组传递参数在了解了一维数组之后,我们再来看看二维数组。

  以下函数通过,哪些是对的,哪些是错的?

  Void test(int arr[3][5])//一一对应,正确!

  {}

  Void test(int arr[][])//列省略,错误!

  {}

  Void test(int arr[][5])//可以省略该行,正确!

  {}

  Void test(int *arr)//二维数组的第一个元素是第一行。

  { }//第一行的类型是int(*)[5]。错误!

  Void test(int* arr[5])//指针数组,错误!

  {}

  Void test(int (*arr)[5])//数组指针,正确!

  {}

  Void test(int **arr)//arr不是一级指针的地址。错误!

  {}

  int main(){

  int arr[3][5]={ 0 };

  测试(arr);

  返回0;

  }根据二维数组传递参数的代码复习以下知识点。

  (1)二维数组的第一个元素是第一行。

  (2)定义二维数组时,可以省略行,不能省略列。

  第一行的类型是int[5],要放在数组指针里!

  一维指针参数传输

  #包含stdio.h

  Void print(int*p,int sz){//用int *接受

  int I=0;

  for(I=0;我SZ;i ){

  printf(%d\n ,*(p I));

  }

  }

  int main(){

  int arr[10]={1,2,3,4,5,6,7,8,9 };

  int * p=arr

  int SZ=sizeof(arr)/sizeof(arr[0]);

  打印(p,SZ);//传递给函数的第一级指针P

  返回0;

  }二维指针引用下面是两级指针引用的基本形式。

  的类型是pp int**,p是指针变量的地址,应该由二级指针接收。

  #包含stdio.h

  无效测试(int** ptr){

  printf(num=%d\n ,* * ptr);

  }

  int main(){

  int n=10

  int * p=n;

  int * * PP=p;

  测试(PP);

  测试(p);

  返回0;

  }让我们看看下面的代码

  这三个参数的类型P,pp,arr都是二级指针。

  在测试函数中,char**用于接收它。

  无效测试(char** p){

  }

  int main(){

  char ch= w

  char * p=ch

  char * * PP=p;

  char * arr[5];

  测试(p);

  测试(PP);

  测试(arr);

  返回0;

  }arr是指针数组的数组名,是数组第一个元素的地址。

  数组的第一个元素是char*类型的,所以它应该由一个二级指针接收。

  -结束-

  ,作为作者请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: