概述
指针:
指针本身是一个变量,存储的是数据在内存中的地址而不是数据本身的值
定义方式如下图:
int a=10,*p; //p变量为指针变量
p=&a;//指针存储地址,取地址,地址指向的数据值
int a=10;
int *p=&a;
int* 这个是要定义一个指针p,这个指针存储的是地址,因此要对a取地址(&)将值赋给指针p,也就是说这个指针p指向a。
俩红定义方法其实是一样的。第一种定义方法定义了int型的变量a和指针p,然后将a的地址赋给p。第二种是在定义指针p的同时将a的地址赋给指针p。我们姑且理解为" int * "是定义指针的标志。
p和*p联系与区别:
联系:俩者都是地址
区别:
p代表的地址的p指向的数据的地址
*p代表的是p的地址
数组:
数组本身的名称也是一个地址,它可以被理解为一个常指针(它只能指向本数组首元素的地址)。而指针可以指其他的变量等等。
指针指向数组:
int array[5]={0,1,2,3,4};
int *p=array;//指向首元素地址
printf("%d",*(p+1));//指向p[1]
定义一个数组并初始化,int array[5]={0,1,2,3,4};定义一个指针变量并把数组的地址赋给它,int *p=array,注意数组名就是数组的地址,而且数组的地址就是首元素的地址。
结构体:
结构体(struct)是指由一系列具有相同类型或不同类型的数据构成的数据集合。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
struct student
{
char *name;
int ages;
};
指针指向结构体:
定义一个指针指向结构体类型,结构体变量的地址赋给指针变量p
struct student stu={"Rose",15};
struct student *p;
p=&stu;
struct stu* p = &stu;//第二种定义方式
有3种方式来访问结构体中的属性ages:
stu.ages=15;
(*p).ages=15;
p->ages=15;//只能在C语言中只能用来指向结构体。
sizeof(stu)用来测结构体长度,printf(“结构体长度=%d”,sizeof(stu));
最后
以上就是落寞服饰为你收集整理的c/c++总结(二) 指针,结构体基础知识总结的全部内容,希望文章能够帮你解决c/c++总结(二) 指针,结构体基础知识总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复