初识结构体及结构体指针

一、结构体

结构体可以让C语言创造出一个新的类型。

如下代码

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


//创建一个学生的类型
struct stu//结构体可以让C语言创建出新的类型出来
{
    char name[20];
    int age;
    double score;
};
//创建一个书的类型
struct book
{
    char name[20];
    float price;
    char id[30];
};
int main()
{
    struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化
    printf("%s %d %lf",s.name,s.age,s.score);//结构体变量.成员变量
    return 0;
}

上述代码中创建了一个学生类型和一个book类型,类型中有其希望输出的变量。在主函数中可以对结构体进行创建和初始化,并且输出结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 二、结构体指针及其第一种输出形式

结构体的创建和初始化也可以用指针的形式,如下代码

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>


//创建一个学生的类型

struct stu//结构体可以让C语言创建出新的类型出来

{

 char name[20];

 int age;

 double score;

};

//创建一个书的类型

struct book

{

 char name[20];

 float price;

 char id[30];

};

int main()

{

 struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化

 printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量

 struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

 return 0;

}

上述代码中对结构体的创建和初始化运用的就是指针。上述代码运行输出结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 三、结构体指针及其第二种输出形式

结构体指针的输出形式不仅可以用这种形式

struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

也可以采取下种形式

printf("3:%s %d %lf ", ps->name, ps->age, ps->score);

如下代码

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

struct stu//结构体可以让C语言创建出新的类型出来

{

 char name[20];

 int age;

 double score;

};

//创建一个书的类型

struct book

{

 char name[20];

 float price;

 char id[30];

};

int main()

{

 struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化

 printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量

 struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

 printf("3:%s %d %lf ", ps->name, ps->age, ps->score);

 return 0;

}

上述代码输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值