1. 结构数组:
#include <stdio.h> int main(void) { struct Rec {int x,y;}; struct Rec rs[10]; size_t i; for (i = 0; i < sizeof rs/sizeof rs[0]; i++) { rs[i].x = i; rs[i].y = i * 2; } for (i = 0; i < sizeof rs/sizeof rs[0]; i++) { printf("%d, %d\n", rs[i].x, rs[i].y); } getchar(); return 0; }
#include <stdio.h> int main(void) { struct Rec { char name[12]; short age; } rs[3] = { {"AAA", 11}, {"BBB", 22}, {"CCC", 22} }; size_t i; for (i = 0; i < sizeof rs/sizeof rs[0]; i++) { printf("%s, %d\n", rs[i].name, rs[i].age); } getchar(); return 0; }
2. 结构指针指向已存在的结构数组:
#include <stdio.h> int main(void) { struct Rec { char name[12]; short age; } rs[3] = { {"AAA", 11}, {"BBB", 22}, {"CCC", 22} }; struct Rec *p = rs; printf("%s, %d\n", p->name, p->age); printf("%s, %d\n", (p+1)->name, (p+1)->age); printf("%s, %d\n", (p+2)->name, (p+2)->age); getchar(); return 0; }
3. 结构指针(单个结构):
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { struct Rec { char name[12]; short age; }; struct Rec *p = NULL; p = (struct Rec *)malloc(sizeof(struct Rec)); stpcpy(p->name, "ABC"); p->age = 99; printf("%s, %d\n", p->name, p->age); printf("%s, %d\n", (*p).name, (*p).age); free(p); getchar(); return 0; }
4. 结构指针(多个结构):
#include <stdio.h> #include <stdlib.h> int main(void) { struct Rec { int x; int y; } *p; size_t i, count = 10; p = (struct Rec *)malloc(sizeof(struct Rec)*count); for (i = 0; i < count; i++) { (p+i)->x = i; (p+i)->y = i * i; } for (i = 0; i < count; i++) { printf("%d, %d\n", (p+i)->x, (p+i)->y); } free(p); getchar(); return 0; }
5. 连续的多个结构不就是结构数组了吗?(同上例)
#include <stdio.h> #include <stdlib.h> int main(void) { struct Rec { int x; int y; } *p; size_t i, count = 10; p = (struct Rec *)malloc(sizeof(struct Rec)*count); for (i = 0; i < count; i++) { p[i].x = i; p[i].y = i * i; } for (i = 0; i < count; i++) { printf("%d, %d\n", p[i].x, p[i].y); } free(p); getchar(); return 0; }
分类:
学习 C 语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2007-11-28 刷新网页
2007-11-28 把字符串复制到剪贴板
2007-11-28 如果一个对象不存在