结构体指针
一、先回顾一下结构体的定义及其使用:
1、结构体的定义形式如下:
struct 结构体名
{
类型1 成员1;
类型2 成员2;
…
类型n 成员n;
};
实例如下:
struct stu
{
char* name;
int age;
int num;
};
2、该结构体的使用范例如下所示:
#include <stdio.h>
#include <string.h>
struct stu//定义一个结构体
{
char* name;
//char name[10];
int age;
int num;
};
int main(void)
{
struct stu s;//定义一个结构体变量s
s.name = "Bob";//给结构体变量s赋值
//strcpy(s.name,"Bob");//如果把name定义为一个数组则使用该语句赋值
s.age = 22;
s.num = 6;
printf("name=%s\n", s.name);//输出结构体变量s的内容
printf("age=%d\n", s.age);
printf("num=%d\n", s.num);
return 0;
}
二、结构体指针的定义及使用
1、结构体指针的定义:
struct 结构体名 *指针变量名;
实例如下:
struct stu//先定义一个结构体
{
char* name;
int age;
int num;
};
struct stu s1,*s;//定义一个结构体变量和一个结构体指针
2、该结构体的使用范例如下:
#include <stdio.h>
#include <string.h>
struct stu//定义一个结构体
{
char* name;
//char name[10];
int age;
int num;
};
int main(void)
{
struct stu s1,*s;//定义一个结构体变量和一个结构体指针
s = &s1;//让指针s指向结构体变量s1,就是将s1的首地址赋予指针s
s->name = "Bob";//赋值
//strcpy(s->name,"Bob");//如果把name定义为一个数组则使用该语句赋值
s->age = 22;
s->num = 6;
printf("name=%s\n",s->name);//输出内容
printf("age=%d\n", s->age);
printf("num=%d\n", s->num);
return 0;
}