要把数组或者指针传给函数,那函数参数如何设计

上面各写法问题嘛?

第一个问题

第二个问题

第三个没问题

第四个没问题

第五个解析定义int*arr2[20]为20个int*类型数组test2之后用的是arr2,arr2是数组名就是元素地址,首元素int*类型的是int*类型的,所以二级指针就是用来存放一级指针变量的地址,所以没问题。

  1. &是地址所以可以传给指针
  2. Ptr是一级指针变量所以可以传给函数
  3. Arr数组名数组名是首元素地址所以可以

*p指向的是arr{10}的首元素地址也就是1的地址,15行把元素个数算出来。16行p为指针所以函数需要用指针来接收

n为10,再把n的地址放到*p里,再把p*放到二级指针变量**pp里。那么test(pp)里传到函数int**ptr也没问题。直接test(&p)也可以因为函数里就是的二级指针就是存一级指针的。

函数指针——指向函数的指针就是函数指针

数组指针——指向数组的指针就是数组指针

程序结果打印出来的函数地址,所以函数也有地址。

函数名和取函数是一样的都拿到的是函数的地址。

如何存函数的地址呢?以上程序为例

Int(*pf)(intint)= &add

(*Pf)是指针,指向函数()函数的参数有那些(intint)函数的返回类型为int

intint)里的xy写不写都可以时候*pf里就是函数的地址

Int ret = (*pf)(2,3);

如果要调用函数使用对pf进行解引用(*pf)是不是就可以拿到函数了那函数需要传的参数设置一下为(2,3),再使用int ret来接函数的返回值。此时打印ret应该为5.

原文地址:https://blog.csdn.net/bearbearwww/article/details/134692734

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45382.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注