二重指针
时间:2020-09-05 17:31:31
收藏:0
阅读:51
- 因为在复习数据结构和C语言(宁夏大学),试卷上的算法题只可以使用纯C去完成, 所以这里为了以防万一,复习一下二重指针。
需求: 将某个变量传参之后, 需要改变这个变量的地址, 将本变量指向一个新的地址。
typedef struct SqStack
{
int data[maxSize];
int top;
}SqStack;
void changePoint(SqStack **fir) // 因为传入的是 地址的地址, 所以可以改变fir的地址。
{
SqStack sec;
sec.top = 999;
*fir = &sec;// 将sec的地址 传给fir。实现地址改变。
}
int main()
{
SqStack *fir;
fir = (SqStack *)malloc(sizeof(SqStack));
fir->top=-1;
printf("fir的地址为:%d\t fir的top值为%d\n",fir,fir->top);
changePoint(&fir); // 取出fir地址的地址,作为参数传入。
printf("fir的地址为:%d\t fir的top值为%d\n",fir,fir->top);
return 0;
}
-运行结果如下:
fir的地址为:10490928 fir的top值为-1
fir的地址为:6421568 fir的top值为999
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
原文:https://www.cnblogs.com/A-FM/p/13618236.html
评论(0)