有关指针和地址传递的问题
我先定义一个结构体
然后在main()函数中定义三个变量;分别为
后面写了一个归并函数
在main()函数调用时,传递的参数形式为:
问题来了,调试、编译都没问题,但就是运行出现错误。
而把MergeList()函数的第三个(C)形参类型改为
函数体内的C也都改为
在main()函数传递形式为:
结果就正确了!
小弟能力有限,还没想明白这时为什么?
请高手帮忙看一下!
typedef struct Node {
DataType data;
struct Node *next;
}ListNode,*LinkList;然后在main()函数中定义三个变量;分别为
ListNode *LA,*LB,*LC;后面写了一个归并函数
void MergeList(LinkList A, LinkList B,LinkList C)
{
ListNode *pa,*pb,*pc;
pa=A->next;
pb=B->next;
C=A;
pc=C;
while(pa&&pb)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pc->next;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pc->next;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(B);
}在main()函数调用时,传递的参数形式为:
MergeList(LA,LB,LC)问题来了,调试、编译都没问题,但就是运行出现错误。
而把MergeList()函数的第三个(C)形参类型改为
MergeList(LinkList A,LinkList B,LinkList *C)函数体内的C也都改为
*C;*C;在main()函数传递形式为:
MergeList(LA,LB,&LC);结果就正确了!
小弟能力有限,还没想明白这时为什么?
请高手帮忙看一下!
...全文
相关推荐
C语言地址传递与值传递
在C语言中,所有非数组形式的数据实参都是以值传递的形式调用,本文就对C语言地址传递与值传递进行了简单介绍。
C语言中 值传递和指针传递实例详解
主要介绍了C语言中 值传递和指针传递实例详解的相关资料,需要的朋友可以参考下
函数参数的传递问题(指针的指针)
结论:1. 函数的返回值是指针类型的,检查是静态内存指针还是堆内存指针还是栈内存指针,栈内存指针是绝对要不得滴!2. 函数需要使用指针参数进行传入传出的,在函数中只能对指针的指向的值(*p)进行修改,而不能修改指针指向,也就是指针地址!(函数中不得修改指针参数的地址,否则请使用指针的指针!
c++之指针作为函数参数传递的问题.pdf
c++之指针作为函数参数传递的问题的pdf版本 博客:http://blog.csdn.net/fjb2080 欢迎访问!
C++指针作为函数的参数进行传递时需要注意的一些问题
当指针作为函数的参数进行传递的时候,本质上还是进行的“值传递”,也就是复制了一个新的指向该地址的指针变量



