指针引用

指针

指针和指针变量:指针是指地址,指针变量是指存储指针的变量。
&为取地址符,&a是变量a的存储地址,而*a是a指向地址的内容。

int a;
int b[10];
int *c = &a;
int *d = b;

当形参是指针时,例如swap(&a,&b),函数定义是int swap(*a,*b),此时仍然是值传递,只不过传递的值是地址。

引用

是变量的别名,不开辟新的地址空间,而是与原变量公用一个地址空间,只能在赋初值时确定所代表的地址空间,不能更改。

int a;
int &b = a;

形参为引用时,swap(a,b),函数定义是int swap(&a,&b)

这也是指针和引用的却别,指针要单独给指针变量开辟地址空间用来存储地址,而引用不需要单独存储地址空间,而是就等于原变量的地址空间。

结构体

结构体指针:

struct student;
student *p = &student;
//如果要访问其中的元素
student.name = "liu";
p->name = "liu";
(*p)->name = "liu";

共用体

union data{
	int a;
	float b;
	double c;
};
//和结构体类似,区别是,共用体所有成员的首地址一样的,因此同一时刻只能表示一个成员,占用空间大小为其中最大的成员所占用的空间大小。

枚举

enum week{sun,mon,tue,thi};
//说明week类型,只能取这几个值,其实C++赋值是从第一个赋0,1,2.不过不能直接说是0,而要类型转换
week week1;
week1 = (week) 0;//这时,week1输出为sun。

猜你喜欢

转载自blog.csdn.net/weixin_43554642/article/details/89043258
今日推荐