你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。
只为您设计更接底气、较有营销力的好网站,将营销策划与网页设计互相结合的专业机构,营销型网站公司中较早掌握HTML5技术的机构。一个好的品牌网站制作,不能只是一张名片,茫茫网海,想要快速吸引到您客户的眼球,必须全方位的展现出企业突出的优势,以求达到主动营销的效果,最终促成成交!
int
main(void)
{
int
data=0;
//此处随机分配内存空间,不要用指针
myStack=makeStack(myStack,top);
Push(myStack,3);
Push(myStack,8);
Push(myStack,19);
Push(myStack,31);
Push(myStack,43);
Push(myStack,36);
Pop(myStack,data);//此处,传递的是地址值
printf("%d
",data);
}
int*
Pop(LinkedStack
myStack,int
*data)
{
pStack
cursor=myStack;
if(Stack_Empty())
{
}
else
{
while(cursor-next!=top)
{
cursor=cursor-next;
}
*data=top-data;
//此处,只是在同一个内存空间修改其值,所以不要取地址
top=cursor;
return
data;
}
}
函数指针两种方式都可以调用函数,p(a,b)和(*p)(a,b)都是调用函数max并传递参数a,b。
如果你只需要传出一个值,把这个值放在return后面,
例如 子函数fun中return p;然后调用时用 t=fun()就可以了。
如果需要传回多个值,需要二级指针。
比如fun(int** p){p=0;}
Main()
{ int *q;
fun(q);
}
调用有q的值就变成0了。
当然由于你说的是将指针传出,所以p需要是二级指针,如果是一般变量的话,p只需要是一级指针就可以了。
这是个函数指针 前面的void为返回值类型 后面的void*为参数类型.
函数指针是可以作为某个函数的参数的.
(1) 指向函数的指针变量的一般定义形式为:
数据类型 (*指针变量名)(函数参数列表)
函数名是可以缺省的 作为参数传递的时候会去调和 void*(*)(void*)这个类型相匹配的函数的
作为参数调用这个函数的时候 返回类型是void* 就相当于传了一个参数类型为void*,当然这个函数指针的参数也是void*的
文章名称:c语言函数传递一级指针 c语言函数传递指针参数的问题
网页地址:https://www.cdcxhl.com/article20/ddgodjo.html
成都网站建设公司_创新互联,为您提供服务器托管、网页设计公司、品牌网站建设、网站设计、App设计、电子商务
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联