现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

为什么要用二级指针

2018-10-30 13:48 工业·编程 ⁄ 共 483字 ⁄ 字号 暂无评论

在重新回顾C语言数据结构时,在实现顺序表和链表时关于指针使用的区别让我觉得很有趣。

像在顺序表中实现

struct SeqList

{

    DataType arry[MAX_SIZE];

    int Size;

};

而我们在使用顺序表时,往往在main函数中直接定义:

SeqList seqlist;

在后面对顺序表的使用中,直接传参,比如

InitList(&seqlist);

而在链表中

typedef struct SQList

{

    DataType data;

    struct SQList *next;

}SQList,*PSqList;

在后面的使用中,我们往往在main函数中定义PSqList *pnode。

在后面的函数传参中,依然

InitPSlist(&pnode);

如果此时我们定义Init函数的时候,参数为一级指针,则在参数传递过程中,当程序运行到InitPSlist时,会在堆栈中生成一个临时变量,在该函数中改变的是那个临时变量的值,而当我们程序跳出该函数时,我们给他传进去的实参值并没有发生改变,所以在形参设置时,设置为二级指针,让他们实参形参指向一个地方,防止程序出错。

给我留言

留言无头像?