C语言结构体相关笔记

写一个结构体(与typedef做了结合)

c 复制代码
// 将单一类型组合在一起形成自定义类型--结构体
typedef struct Stu // struct Stu属于类型
{
    // 成员
    char name[20];
    int age;
    char sex[10];
    char tele[12];
} Stu; //;不能忽略

结构体对象.成员名

c 复制代码
#include <stdio.h>
int main()
{
    struct Stu s1 = {"zhangsan", 20, "nan", "13578412456"};
    // 上下两种初始化效果相同,因为用了typedef
    Stu s2 = {"lisi", 21, "nv", "18574136855"};
    // 结构体对象访问其对象用"."
    // 结构体对象.成员
    printf("%s %d %s %s\n", s1.name, s1.age, s1.sex, s1.tele);//zhangsan 20 nan 13578412456
    printf("%s %d %s %s\n", s2.name, s2.age, s2.sex, s2.tele);//lisi 21 nv 18574136855
    return 0;
}

结构体指针变量->成员名

c 复制代码
#include <stdio.h>
// 因为参数传的是结构体对象s1的地址需要用一个指针变量来存,指针变量起名为PS1
// s1的类型为struct Stu所以print()的参数要写成Stu *PS1
void print(Stu *PS1)
{
    // 上下两种写法相同
    // 1.先把地址解引用找到指向的结构体对象再用.找成员
    printf("%s %d %s %s\n", (*PS1).name, (*PS1).age, (*PS1).sex, (*PS1).tele);//zhangsan 20 nan 13578412456
    // 2.结构体指针变量->成员名
    printf("%s %d %s %s\n", PS1->name, PS1->age, PS1->sex, PS1->tele);//zhangsan 20 nan 13578412456
}
int main()
{
    struct Stu s1 = {"zhangsan", 20, "nan", "13578412456"};
    // 上下两种初始化效果相同,因为用了typedef
    Stu s2 = {"lisi", 21, "nv", "18574136855"};
    print(&s1);
    return 0;
}
相关推荐
晓蛋4 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿4 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy4 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
phltxy4 天前
C 语言中的数据存储:从类型到二进制位
c语言
深圳老胡4 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her14 天前
并查集-听课笔记
笔记·算法·并查集
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师4 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营