C结构体指针访问结构成员
1 #include <stdio.h> 2 3 struct Payload { 4 char* title; 5 char* data; 6 }; 7 8 char* extractData(struct Payload *payload); 9 10 int main(int argc, char const *argv[]) 11 { 12 struct Payload payload; 13 14 payload.title = "content-type"; 15 payload.data = "text/html"; 16 17 char* data = extractData(&payload); 18 printf("%s\n", data); 19 20 return 0; 21 } 22 23 24 char* extractData(struct Payload *payload) { 25 if (NULL == payload) { 26 return 0; 27 } 28 29 return payload->data; 30 }
程序2:
#include <stdio.h> struct User { char* name; int age; }; char* name(struct User *user) {
// 传地址,访问成员需要用 -> return user->name; } char* another_name(struct User *user) {
// 或者 dereference 后,得到结构体然后用 . return (*(user)).name; } void main() { struct User user = {"h", 11}; char* real_name = name(&user); printf("%s\n", real_name); printf("================\n"); char* another_real_name = another_name(&user); printf("%s\n", another_real_name); printf("%zu\n", sizeof(real_name)); }
指针的size 与指向位置实际存储大小无关,而是与操作系统有关,64位机器, 返回8, 32位机器返回4;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用