在C/C++的数据结构中,利用指针初始化操作的三种方法!
#include
#include
using namespace std;
/*
结构体的各部分结构分析;
typedef:使用这个重定义一个别名代替"struct"!
mysq:声明定义一个结构体变量可以使用mysq!
mysqstack:效果同mysq保持一致!
*/
typedef struct mysq
{
char mydata;
int top;
}mysqstack;
//函数声明!
//这是一级指针以及二级指针使用方法的函数声明!
void Initstack(mysqstack **s);
//这是"引用"方法的函数声明!
//void Initstack(mysqstack *&s);
//以下介绍指针在数据结构中的三种用法
void main()
{
mysqstack *s;
cout<<"初始化堆栈!\n";
//Initstack(s); "引用"的使用方法!
//Initstack(&s); "一级指针"的使用方法!
Initstack(&s); //"二级指针"的使用方法!
}
//这是第一种方法:"引用"!
/*
void Initstack(mysqstack *&s)
{
s = (mysq *)malloc(sizeof(mysq));
s->top = -1;
}*/
//这是第二种方法,一级指针的使用!
/*
void Initstack(mysqstack **s)
{
(*s) = (mysqstack *)malloc(sizeof(mysqstack));
(*s)->top = -1;
}*/
//这是第三种方法,二级指针的使用!
void Initstack(mysqstack **s)
{
(*s) = (mysqstack *)malloc(sizeof(mysqstack));
(**s).top = -1; //这里是和以及指针的使用区别!
}