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;
}
相关推荐
风指引着方向10 小时前
图编译优化全链路:CANN graph-engine 仓库技术拆解
c语言
JustDI-CM10 小时前
AI学习笔记-提示词工程
人工智能·笔记·学习
爱写bug的野原新之助10 小时前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
C++ 老炮儿的技术栈10 小时前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt
Once_day10 小时前
C++之《Effective C++》读书总结(4)
c语言·c++·effective c++
晓131311 小时前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
梵刹古音11 小时前
【C语言】 指针基础与定义
c语言·开发语言·算法
杜子不疼.11 小时前
Ascend_C自定义算子开发
c语言·开发语言
小乔的编程内容分享站12 小时前
C语言笔记之函数
c语言·笔记
杜子不疼.12 小时前
基于ATVC模板库的Ascend C Vector算子快速开发指南
c语言·开发语言·mfc