概述
C语言指向结构体的指针
C语言指向结构体的指针
格式:
结构体类型 变量名称 ,* 指针名称 = &变量名称;
案例如下
定义结构体并定义结构体指针让其指向结构体
#include<stdio.h>
#include<string.h>
typedef struct stud{//定义了一个结构体
char Id[10];//学号
char Name[10];//姓名
int China;//语文成绩
int Math;//数学成绩
int English;//英语成绩
}STU;
void main(){
STU a = {"S1","王杰",125,132,120},*p=&a;//p现在指向的是a,但是p和a都是结构体类型
}
模拟图如下
如何通过指针获取结构体当中的值
格式:
格式1:结构体变量名.成员名;
格式2:(*结构体指针).成员名;
格式3:结构体指针->成员名;
//得到的是指针所指向结构成员变量的值
实例如下:
第一种情况:a.Name //获取到王杰
第二种情况: (*p).Name;//这里点号的优先级要比*大所以要将*括起来先获取*p指向的对象再获取对应的值
第三种情况(用的最多的写法):p->Name;
//得到的是p所指向结构成员变量的值
程序案例一、
#include<stdio.h>
#include<string.h>
typedef struct stud{//定义了一个结构体
char Id[10];//学号
char Name[10];//姓名
int China;//语文成绩
int Math;//数学成绩
int English;//英语成绩
}STU;
void main(){
STU a = {"S1","张海军",79,67,57},*p=&a;//p现在指向的是a,但是p和a都是结构体类型
printf("%st%st%dt%dt%d",p->Id,p->Name,p->China,p->Math,p->English);
}
程序案例二、
#include<stdio.h>
#include<string.h>
typedef struct stud{//定义了一个结构体
char Id[10];//学号
char Name[10];//姓名
int China;//语文成绩
int Math;//数学成绩
int English;//英语成绩
}STU;
void output(STU *a,int n){//注意z这里有两种写法还有一种写法就是STU a[]、这里的指针和数组是一回事
int i;
for(i=0;i<n;i++){
printf("%sn",a->Name);
a++;
}
}
void main(){
STU a[8]={
{"S1","张一军",127,150,100},
{"S2","张二军",75,85,89},
{"S3","张三军",67,58,86},
{"S4","张四军",120,101,87},
{"S5","张五军",136,100,82},
{"S6","张六军",141,52,83},
{"S7","张七军",125,85,81},
{"S8","张八军",136,65,79}
};//p指向a[0]
output(a,8);
}
#include<stdio.h>
#include<string.h>
typedef struct data{
int x;
int *y;
}DATA;
void main(){
int a[4]={1,2,3,4};
DATA k = {a[0],&a[0]},*p=&k;
printf("%d",*(p->y));
}
模拟图如下,在结构体当中如果一个指针需要获取结构体当中指针的地址则需要使用->的方式去获取。指向结构体的指针,并得到其对应结构体当中的指针指向的地址值。
最后
以上就是俊逸飞鸟为你收集整理的C语言指向结构体的指针,如何通过指针获取结构体当中的值C语言指向结构体的指针的全部内容,希望文章能够帮你解决C语言指向结构体的指针,如何通过指针获取结构体当中的值C语言指向结构体的指针所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复