请问在C语言中,如果我在一个函数里申请一个指针,怎么能让他传进去的数值。从函数里传出来呢。

请问在C语言中,如果我在一个函数里申请一个指针,怎么能让他传进去的数值。从函数里传出来呢。,第1张

如果你只需要传出一个值,把这个值放在return后面,
例如 子函数fun中return p;然后调用时用 t=fun()就可以了。
如果需要传回多个值,需要二级指针
比如fun(int p){p=0;}
Main()
{ int q;
fun(&q);
}
调用有q的值就变成0了。
当然由于你说的是将指针传出,所以p需要是二级指针,如果是一般变量的话,p只需要是一级指针就可以了。

std::function可以绑定到全局函数或类的静态成员函数,如果要绑定到类的非静态成员函数,则需要使用std::bind。
void F();
struct A
{
void F(){}
};
std::function<void()> f1 = F; //全局函数
A a;
std::function<void()> f2 = std::bind(&A::F, a); //成员函数

如果只是用到buff12这一个元素的话,我们不妨把它想象成一个单独的变量,变量名就叫做“buff12”。那么我们就可以按照传递单独的变量的方法进行 *** 作。
子函数声明:
fun(int a,int b,int c);
主函数调用:
main()
{
fun(&buff[1][2],10,10);
}
如果要调用整个二维数组可以这样声明和调用:
fun(int a,int b);
main()
{
fun(buff,10);
}
如果要调用整个二维数组的某一行可以这样声明和调用:
fun(int a,int b);
main()
{
fun(buff2,10);
}

数组名就是指针,例如:

#include <stdioh>

void pr(char p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

扩展资料:

注意事项

非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:

int main(int argc,char argv[])

{

/ code here /

}

int main(int argc,char argv)

{

/ code here /

}

两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。

intcmp是和GetKeyFunc_t对应起来的。
而你现在错在了CmpFunc_t这个函数参数上了。
你把怎样的函数参数指针传给了BST_t newBST?
你没交代清楚啊,你把错误指针传给newBST函数的第一个参数,编译器肯定报错了。你给了那么多代码,关键你把什么传给了BST_t newBST的第一个参数?给一下你调用这个newBST函数的代码,而且要你传给该函数第一个参数的参数定义。
另外给个建议:定义函数时,记得对传进来的参数进行合法性检验。多加几行代码是很有必要的,能增强函数的健壮性。(微软也好,ISO也好,都对大部分函数设计时要求做必要的合法检验)

1)用指针作为函数的参数,它的作用是将一个变量的地址传送到另一个函数中。 #include void change(int a,int b) / 定义一个函数, 两个指针为函数的形参/ { int temp; temp=a; /函数的作用是 交换两个变量/ a=b; b=temp } void main()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13323761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存