结构体

结构体

#include<stdio.h>
**1.结构体,自定义数据类型****
 struct Date
 {
    int year;
    int mon;
    int day;
 }
 struct Student
 {
    char name[20];
    int age;
    struct Date bir;
 }

 int main()
 {
    struct Student stu={"liubei",29};
    **2.结构体普通变量通过“.”访问其成员**
    stu.bir.year=1990;
    struct Student *ps=&stu;
    **3.结构体指针变量通过“->”访问其成员**
    //通过ps定义月日5,3
    ps->bir.mon=5;
    ps->bir.day=3;
    //输出stu所有数据
    printf("%s,%d,%d-%d-  %d\n",stu.name,stu.age,stu.bir.year,stu.bir.mon,stu.bir.day);
    printf("%s,%d,%d,%d,%d\n",ps->name,ps->age,ps->bir.year,ps->bir.mon,ps->bir.day);
 }

4.聚合类型(数组,结构体) 如果只初始化一部分,则剩下的部分为0

#include<stdio.h> 
struct Student
{
    char name[20];
    int age;
}
int main()
{
    struct Student stu={"liubei"};**//只初始化了一部分**
    printf("%s ,%d\n"stu.name,stu.age);
 }

运行结果:
在这里插入图片描述
若用函数解决:

#include<stdio.h> 
struct Student
{
     char name[20];
     int age;
 }
 void Show(const struct Student *ps)
 {
     printf("%s,%d\n",ps->name,ps->age);
 }
 int main()
 {
      struct Student stu={"liubei"};
      Show(&stu);
 }

相关例题
将liubei的年龄改为25,并将数组arr的数据全部输出
在这里插入图片描述

#include<stdio.h>
  struct Student
 {
    char name[20];
    int age;
 }
 int main()
 {
     struct Student arr[]={"liubei",23,"sunquan",18,"caocao",24};
     arr[0].age=25;
     for(int i=0;i<sizeof(arr)/sizeof(arr[0]));
     {
         printf("%s,%d\n",arr[i].name,arr[i].age);
     }
 }

**
用函数表示

 #include<stdio.h>
   struct Student
   {
        char name[20];
        int age;
   }
   void Show(const struct Student *arr,int len)
   {
      int i;
      for(i=0;i<len;i++)
      {
        printf("%s,%d\n",arr[i].name,arr[i].age);
      }
   }
   int main()
   {
     struct Student arr[] = {{"liubei",23},"sunquan",18,"caocao",24};
	arr[0].age = 25;
     Show(arr,sizeof(arr)/szeof(arr[0]));
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值