1.学c笔记归纳 第二篇——基本数据类型2.学c笔记归纳 第三篇——常量3.学C笔记归纳 第四篇——static关键字(重点)4.学c笔记归纳 第五篇——指针(抽象点)
5.学C笔记归纳 第六篇——结构体
6.学C笔记归纳 第七篇——分支循环语句17.学C笔记归纳 第八篇——分支循环语句2_switch8.学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)9.学C笔记归纳 第十篇——循环算法优化10.学C笔记归纳 第十一篇——函数111.学C笔记归纳 第十二篇——函数2 声明和定义12.学C笔记归纳 第十三篇——函数3 递归(重点)13.学C笔记归纳 第十四篇——一维数组14.学C笔记归纳 第十五篇——二维数组结构体是把一些单一类型组合在一起的做法
需要弄懂两个操作:存储数据和访问数据
#include <stdio.h> struct Students { //成员 char name[5]; int age; char sex[5]; char tel[12]; }; int main() { struct Students stu = { "ling",18,"女","18119642419" }; printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel); print(&stu); return 0; }
注意:程序运行"struct Students stu=..."时内存才分配空间存储数据。
“%s”对应 字符串 类型
要注意printf函数里%s、%d 要与变量一一对应,否则编译器会凌乱,无法打印。
"printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel);"语句是否繁杂,如果频繁操作是否过于冗杂?
结合前面学的指针,是否可以通过stu的内存地址直接访问其所储存的数据呢?
#include <stdio.h> struct Students { //成员 char name[5]; int age; char sex[5]; char tel[12]; }; //use point 传参 void print(struct Students* p) { printf("%s %d %s %s\n", (*p).name, (*p).age, (*p).sex, (*p).tel);//必须带() printf("%s %d %s %s\n", p->name, p->age, p->sex, p->tel);//“->”结构体指针变量->成员名 } int main() { struct Students stu = { "ling",18,"女","18119642419" }; printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel); print(&stu); return 0; }
运行此代码:
通过对比发现通过指针访问数据显然是可行的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了