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;
}
相关推荐
PC2005-cloud12 小时前
DeepSeek Harness 创建 skill 指南:结构、安装、使用
笔记·学习
库玛西13 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
AC赳赳老秦14 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
caimouse14 小时前
ReactOS 图形系统分析(19):颜色转换对象 — XLATEOBJ(xlateobj.c/h)
c语言·开发语言
程序员与背包客_CoderZ15 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡16 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
Yyyyyy~16 小时前
【C】C语言常见概念
c语言
后季暖17 小时前
langgraph笔记(2)&& fastapi笔记
笔记
嵌入式阿蔡18 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
小小筱筱18 小时前
LabVIEW笔记:解决周立功CAN卡驱动缺失导致的启动报错问题
笔记·labview