C/C++数据结构中利用指针的三种初始化方式

在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;  //这里是和以及指针的使用区别!
}

你可能感兴趣的:(C/C++)