0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言入门之结构体指针

jf_78858299 来源:C语言入门到精通 作者:闫小林 2023-03-24 14:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C语言中,指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素。

指针变量的基类型必须与结构体变量的类型相同。

C语言中允许
(*p).num用p->num来代替
->代表一个箭头
p->num表示p所指向的结构体变量中的num成员

C语言指向结构体数组的指针

(++p)->num

先使p自加1,然后得到p指向的元素中的num成员值。

(p++)->num

先求的p->num的值,然后再使p自加1。

C语言用结构体变量和结构体变量的指针作函数参数

用结构体变量的成员作参数,用法和用普通变量作实参是一样的,属于“值传递”方式。应当注意实参与形参的类型保持一致。

用结构体变量作实参。用结构体变量作实参时,采取的也是“值传递”的方式,将结构体变量所占的内存单元的内容全部按顺序传递给形参,形参也必须是同类型的结构体变量。

用指向结构体变量(或数组元素)的指针作实参,将结构体变量的地址传给形参。

C语言使用结构体指针输出生日

#include
#include
struct Age
{

int year;
int month;
int day;
};
struct Student
{

char name[20];//姓名
struct Age birthday; //生日
};
int main(void)
{
struct Student student1; //定义结构体变量student1
struct Student *point =NULL; //定义一个指向Student结构体类型的指针变量point
point = &student1;//point指向结构体变量student1的首地址, 即第一个成员的地址
strcpy((*point ).name,"闫小林");//(*point).name等价于student1.name
(*point ).birthday.year =1989;
(*point ).birthday.month =4;
(*point ).birthday.day =29;
printf("姓名:%s\\n", (*point ).name);//(*point).name不能写成point
printf("生日:%d-%d-%d\\n", (*point).birthday.year, (*point).birthday.month, (*point).birthday.day);
return 0;
}

编译运行结果:

姓名:闫小林
生日:1989-4-29

--------------------------------
Process exited after0.04992 secondswith return value0
请按任意键继续. . .
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144696
  • 指针
    +关注

    关注

    1

    文章

    484

    浏览量

    71689
  • 结构体
    +关注

    关注

    1

    文章

    131

    浏览量

    11302
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言结构组及指针问题

    --结构组 extern idata struct msg *CurSetPara;//指向结构指针 这两句中,变量类型extern
    发表于 04-18 16:49

    C语言指针结构方面比较好的书籍或者视频

    C语言指针结构方面比较好的书籍或者视频,望各位大神提些好的建议
    发表于 05-11 21:33

    嵌入式linux学习笔记20160822-每天进步一点点,向嵌入式进军-C语言指针/结构

    ->C语言/C++学习指南(语法篇)入门到精通,作者是邵方,是根据他写的C语言/
    发表于 08-22 11:32

    单片机C语言 -- 基于结构的面向对象编程技巧

    1、Keil4 C51工程网址:2、需要一定的C语言基础,才看得懂此文。一、面向对象单片机C语言的面向对象编程,是利用
    发表于 02-04 21:48

    C语言结构对函数指针封装示例

    C语言结构对函数指针封装示例示例:#include int i, j;struct DATE{ int year; char month;
    发表于 07-15 06:18

    如何写单片机的C语言结构

    摘要:听说还有好多学单片机的小伙伴不会用结构指针结构是学单片机必须要掌握的,如果你C
    发表于 12-03 07:11

    C语言中的结构指针在访问的时候怎么读取成员变量的数据?

    C语言中的结构指针在访问的时候怎么读取成员变量的数据
    发表于 10-10 07:07

    C语言入门教程-指针

    指针C语言中,指针被广泛使用。所以要想完整地掌握C语言,您需要对
    发表于 07-29 11:30 807次阅读

    C语言入门教程-指向结构指针

    指向结构指针C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型。创建
    发表于 07-29 12:04 3339次阅读

    C语言入门教程-用指针操作数组

    C语言入门教程 在C语言中,数组与指针的关系十分密切。要想有效地使用数组,您需懂得如何借助
    发表于 07-29 12:18 1645次阅读

    C语言入门教程之C语言其实很简单的PPT课件资料免费下载

    本文档的主要内容详细介绍的是C语言入门教程之C语言其实很简单的PPT课件资料免费下载包括了:概述,数据类型运算符和表达式,顺序
    发表于 06-03 08:00 14次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>入门</b>教程之<b class='flag-5'>C</b><b class='flag-5'>语言</b>其实很简单的PPT课件资料免费下载

    嵌入式C语言指针、函数概念、结构递归三大挑战

    指针直接对接内存结构,常见的C语言里面的指针乱指,数组越界根本原因就是内存问题。在指针这个点有无
    发表于 01-12 11:16 846次阅读

    C程序设计入门笔记数组与结构

    数组,结构指针C语言里面最难的部分,如果在编程中可以熟练的运用这三样工具,会大大地提高开发效率,简化程序
    的头像 发表于 03-02 10:13 1188次阅读
    <b class='flag-5'>C</b>程序设计<b class='flag-5'>入门</b>笔记<b class='flag-5'>之</b>数组与<b class='flag-5'>结构</b><b class='flag-5'>体</b>

    详解C语言指针底层基本原理

    说到指针,估计还是有很多小伙伴都还是云里雾里的,有点“知其然,而不知其所以然”。但是,不得不说,学了指针C语言才能算是入门了。
    的头像 发表于 04-06 10:43 2254次阅读

    结构指针的关系

    C语言中,结构(Struct)是一种用户自定义的数据类型,它允许您将不同类型的数据项组合在一起,以便形成一个更复杂的数据结构
    的头像 发表于 01-11 08:00 1782次阅读
    <b class='flag-5'>结构</b><b class='flag-5'>体</b>与<b class='flag-5'>指针</b>的关系