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;
}
相关推荐
文祐9 小时前
C语言用双向链表实现单调递减(递增)队列
c语言·开发语言·链表
liuyicenysabel10 小时前
多服务上线日记二:
服务器·笔记·学习
gugucoding11 小时前
28. 【C语言】通用数据操作:`void *` 与类型无关编程
c语言·开发语言
辰海Coding11 小时前
MiniSpring框架学习笔记-动态代理:如何在运行时插入逻辑?
java·笔记·学习·spring·动态代理
凉、介11 小时前
ARMv8 架构下的刷 Cache 操作
c语言·笔记·学习·架构·嵌入式·arm
cmes_love12 小时前
如何下载沪深股票市场的行情数据,包括委托、成交、订单薄、沪深股票、etf、可转债、指数五档订单薄数据,买一到买五、卖一到卖五历史行情数据笔记
大数据·笔记
摇滚侠12 小时前
Apache Skywalking 实战 阅读笔记 第二章
笔记·apache·skywalking
chushiyunen13 小时前
word使用笔记(二)、邮件合并(模板套用)
笔记·word
江华森13 小时前
Python 编程快速上手:让繁琐工作自动化 —— 19章全实战笔记
笔记·python·自动化