1、通过指针访问结构体成员
-> 操作符
(*p).a 等同于 p-> a
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
struct student
{
char name[20];
int age;
};
int main ()
{
struct student st1 = {"abc", 30};
struct student *p;
p = &st1;
// strcpy((*p).name,"hello");
// (*p).age = 50;
strcpy(p->name,"hello");
p->age = 50;
printf("%s, %d\n", st1.name, st1.age);
return 0;
}
输出结果:
2、通过指针访问结构体数组
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
struct student
{
char name[20];
int age;
};
int main ()
{
int i;
struct student st[3]={{"张三", 34}, {"李四", 40}, {"王二麻子", 50} };
struct student *p = st;
p ->age = 100;
p++;
p ->age = 20;
p--;
for(i = 0; i < 3; i++)
{
printf("%s, %d\n", p[i].name, p[i].age);
}
return 0;
}
输出结果: