如果形参为二重指针时,调用此函数时实参该怎么写呢 函数的实参为常量时,形参与实参结合的传递方式是什么?

作者&投稿:龙鲍 (若有异议请与网页底部的电邮联系)
你这里有一个小小的误区,不是所有的二维数组都能很简单的转成二重指针的。
如果你的实参是普通的二维int arr[8][8],那么你把你的形参也可以写成int [8][8];写成int**类型会出其他的错误,如果写成int*也是可以达到目的。
如果你的实参是int* arr[]这种二维,那么形参就写成int**。
不清楚就追问吧,懂了就采纳

例如: void f(int **, int )调用f函数时第一个参数应该是
int i = 2;
int j;
int *p = &i;
f(&p, j);//调用f函数时参数的形式

希望你能采纳

函数调用时的实参和形参之间的数据是单向的什么传递~

函数调用时的实参和形参之间的数据是单向的值传递。
实参传递给形参是单向传递,形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数中的实参的值。单向传递,只能由实参传给形参,反之不能。
形参如同公式中的符号,实参就是符号具体的值,在调用过程前必须得到赋值;调用过程就是实现形参与实参的结合,把实参的值通过调用传递给形参,相当于把值代入公式进行计算。

扩展资料:
相关的规则:
1、从主调过程传递给被调用过程的参数值。实参可以是变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但它们的数据类型、参数个数及位置必须一一对应。
2、形参只能是变量,实参可以是常量、变量或表达式。在被定义的函数中,必须指定形参的类型。实参与形参的个数应一样,类型应一致。字符型和整型可以互相通用。在调用函数时,如果实参是数组名,则传递给形参的是数组的首地址。
参考资料来源:百度百科-参数传递

//自定义函数中形参的声明char fun (char a,char b)//形参是这样声明{ ....//要处理的代码}//main函数中实参的传递.main(void){ char a,b; fun(a,b);//实参是这样传递.位置是对应的.}

如果形参为二重指针时,调用此函数时实参该怎么写呢
答:如果你的实参是普通的二维int arr[8][8],那么你把你的形参也可以写成int [8][8];写成int**类型会出其他的错误,如果写成int*也是可以达到目的。如果你的实参是int* arr[]这种二维,那么形参就写成int**。不清楚就追问吧,懂了就采纳

二重指针做参数
答:当然,运行正确是因为sizeof(int **)和sizeof(int *)是一样的,都是指针,大小都是4 希望对你有帮助

C++函数错误求改正!
答:用指针的指针(也就是二重指针),或者指针的引用就可以了

c语言二叉树的递归建立和遍历中的双指针的问题
答:双指针是可以直接修改二叉树节点,也可以修改节点的值,具有更好的灵活性 而引用形参只能修改节点值,不能修改节点。简单的比喻就是,双指针可以像机器一样换零件或者直接修零件,引用形参只能修零件。

数据结构 单链表的初始化为什么要定义一个双重指针啊,定义成简单指针不...
答:楼主查阅的那些资料是对的。链表名是一个地址常量,你可以把它看成是一个常量指针,即不能改变它的指向的指针,所以你只能改变链表中除头结点外的指针,而不能改动整个链表。LinkList *head定义二级指针增强了函数的移植能力。

直接调用函数与通过函数指针调用有什么不一样
答:指针函数:当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。格式:类型说明符 * 函数名(参数)当然了,由于返回的是一个地址,所以类型说明符一般都是int。例如:int *GetDate();int * aaa(int,int);函数返回的是一个地址值,经常使用在...

c语言,请问为什么子函数中数组malloc会被free掉,但是结构体不会?_百度...
答:你说的对,如果形参非要用指针的话,是需要二重指针才能实现。你的createList的形参是int a[],等价于int *a。a是形参,是局部变量,只改变局部变量的值,在函数退出时它的值就无效了。下面的代码就是把局部变量a的值赋了malloc分配的地址,而这并不能影响到main函数中传递的实参a。如果一定要用...

C中假如main函数定义一个a[3][3]子函数形参为*p[],(*p)[3],或**p时...
答:所以我们在设计要访问某个一维数组的函数时,形参中有的就是一个指针形参和数组的长度了,再结合上面的实例,就是int *a和int length了。这样实参形参就会匹配起来的。过度到第二个问题?如何访问二维数组呢?也给出一个程序片段 int main(void){ void my_travel( ?, ?);int array[3][3] = {...

哥们,问几个问题啊
答:。。可以说是对的,我们的说法:是使指针1指向了指针2指向的位置,你理解 的是对的 4."当定义一个对链表进行处理的函数时,如果在该函数中可能会修改链表的头结点,则往往可以在函数中设置一个参数sPtr,用于接收指向链表头结点的指针headPtr地址。在函数中通过*sPtr来间接访问headPtr,修改headPtr ...

【求助c语言大神】关于指针*(p1+i*3+j)。。。
答:1、要看p1是基类型是什么的指针,因为它的定义形式是 int *p1,所以它能指向类型为int的存储单元。数组a[3][3]中的元素都是int型的,所以p1可以指向这个数组的任意一个元素;2、二维数组在内存中的存储是行优先的连续存储形式,即先存第0行,再存第一行,后存第二行,这样它的9个元素依次按...