C++之指针探究(九):结构体指针
前文:C++之指针探究(八):指针函数和函数指针
相关博文:C++之结构体探究
结构体指针的定义
(1) C语言中的结构体是一种非基本数据类型,可以将多种数据组合为新的数据类型;
(2) 定义完成结构体类型后,我们就可以用这种新类型,去声明新变量,声明方式和基本数据类型一样:<类型名称><变量名>
(3) 声明结构体变量后,可以通过“.”符号引用其中的成员;
(4) 结构体指针的定义与基本数据结构的指针类似,使用“∗\ast∗”符号即可;
(5) 结构体指针也支持取内容,加减常数等操作,同基本数据结构的指针类似;
(6) 结构体指针通过“->”运算符,可以引用结构体成员;
例1:
运行结果:
附例1代码:
//小问学编程
#include<stdio.h>struct tagDog
{char Name[20];char Color[20];char Weight;
};int main()
{tagDog dog1={"旺财","白色",5};tagDog* pdog=&dog1;printf("名字:%s 颜色:%s 体重:%d公斤\n",dog1.Name,dog1.Color,dog1.Weight);printf("名字:%s 颜色:%s 体重:%d公斤\n",(*pdog).Name,(*pdog).Color,(*pdog).Weight);printf("名字:%s 颜色:%s 体重:%d公斤\n",pdog->Name,pdog->Color,pdog->Weight);return 0;
}
结构体指针作为函数参数传递
如果某个函数需要使用结构体,那么一般推荐使用结构体指针作为参数,他有两个好处:
(1)只传递一个指针地址,而不是复制整个结构体,节省传参时的栈空间;
(2)函数内部对结构体的修改,可以作用到函数外部。
例2:
运行结果:
附例2代码:
//小问学编程
#include<stdio.h>struct tagDog
{char Name[20];char Color[20];char Weight;
};void FunAddWeight(tagDog* p,int nAddWeight)
{p->Weight+=nAddWeight;
}int main()
{tagDog dog1={"旺财","白色",5};tagDog* pdog=&dog1;printf("名字:%s 颜色:%s 体重:%d公斤\n",dog1.Name,dog1.Color,dog1.Weight);printf("名字:%s 颜色:%s 体重:%d公斤\n",(*pdog).Name,(*pdog).Color,(*pdog).Weight);printf("名字:%s 颜色:%s 体重:%d公斤\n",pdog->Name,pdog->Color,pdog->Weight);FunAddWeight(pdog,10);printf("体重:%d公斤\n",pdog->Weight);return 0;
}
C++之指针探究(九):结构体指针相关推荐
- 指向结构体的指针和指向结构体指针的指针
例如,struct T *ptr;是指向一个结构体的指针,也可以当做一个结构体数组来用. 可以把结构体当做 int 来看,int* 类型即可以指向一个整数,也可以指向数组. struct T ** p ...
- c语言如何传递结构体指针,注意使用结构体指针给函数传递参数。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为了增加参数调用的灵活性,可以利用结构体指针传递多个不同的参数进入C语言函数体. 最著名的例子就是用Win32API HANDLE CreateThrea ...
- python 结构体指针_C语言结构体指针(指向结构体的指针)详解
当一个指针变量指向结构体时,我们就称它为C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ char *nam ...
- c语言结构体指针详解,结构体指针,C语言结构体指针详解
结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针. 指向结构体变量的指针 前面我们通过"结构体变量名.成员名"的方式引用结构体变量中的成员,除了这种方法之外还可以使用 ...
- C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...
- c语言 机构体传给指针,注意使用结构体指针给函数传递参数。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为了增加参数调用的灵活性,可以利用结构体指针传递多个不同的参数进入C语言函数体. 最著名的例子就是用Win32API HANDLE CreateThrea ...
- c结构体中定义的成员指针赋值与结构体指针作为成员函数参数的使用
c语言定义结构体可以直接声明结构体变量的,如下 struct Student{char *name; int age; }xiaoming 这样以来,我们就定义了一个结构体类型,同时声明了一个结构体变 ...
- 函数返回结构体指针_9.3 结构体指针
01指向结构体变量的指针 1.指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素. 2.指针变量的基类型必须与结构体变量的类型相同. 3.C语言中允许把(*p).num用p-&g ...
- C语言 字符串转结构体,字符串指针转化为结构体指针!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct abc { unsigned int num; char c; }; typedef abc* pabc ...
- Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针...
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:函数指针 1.函数指针顾名思义就是定义一个指针变量指向一个函数,和一级指 ...
最新文章
- 爱与恨的抉择:ASP.NET 5+EntityFramework 7
- ASP.NET 开源导入导出库Magicodes.IE Docker中使用
- C++ 实现布隆过滤器(BloomFilter)
- 面试官系统精讲Java源码及大厂真题 - 27 Thread 源码解析
- mysql教程查询语句_最全的mysql查询语句整理
- 安装python扩展库时只能使用pip_使用pip安装Python扩展库的方法
- 安谋中国发布“玲珑”多媒体产品线,首款ISP处理器面世
- 1.图像显示图像腐蚀图像模糊canny边缘检测视频操作调用摄像头
- Eplan p8 v2.7安装不上加密狗驱动
- Quartus ii 13.1 数字时钟
- C语言编程三子棋程序代码,C语言实现三子棋源代码
- 2021-09-26 WPF上位机 45-关键帧动画
- html字段靠右对齐,CSS-在HTML标签中右对齐文本的更好方法
- 东南大学计算机学院足球队,2017春季“放飞智能”杯东南大学苏州校友足球队比赛赛事系列报道(八)...
- linux网桥--简介
- Jquery实现淘宝服饰精品案例
- tplink怎么进去_如何进入tp-link路由器设置页面
- 2016年云计算会议_云计算会议2012
- 数据挖掘与机器学习经典书目
- 企业级 Selenium 刷 其他平台 博客访问(学习使用 )