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;
}
相关推荐
Zwawa12 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·单片机·嵌入式
wujiuhsu13 小时前
图片里的简体中文怎么翻译成繁体?商品图、详情页和海报批量转换方法
经验分享·笔记
Escalating_xu16 小时前
【C 语言】编译和链接:从源文件、目标文件到可执行程序完整解析
c语言·开发语言
C++ 老炮儿的技术栈16 小时前
std::atomic 是什么
linux·c语言·网络·c++·visual studio
keyipatience16 小时前
JS学习笔记(2)数组,函数,作用域,对象
前端·javascript·笔记·学习·html
你想知道什么?17 小时前
词向量总结-学习笔记
人工智能·笔记·学习
He BianGu17 小时前
【笔记】WPF中RenderOptions类的详细功能
笔记·wpf
Logic10117 小时前
C语言/数据结构位运算题解:异或XOR找出数轴移动中只出现一次的指令——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
weixin_4629019717 小时前
CubeIDE串口重定向 printf
c语言
用AI来创业吧17 小时前
网站建设公司哪家好:报价差 3 倍,差在哪四项成本上(选型笔记)
笔记·性能优化·软件工程·安全威胁分析