c++入门之初话指针
先上代码:再进行总结知识:
# include "iostream"
struct ant_year_end
{
int year;
}; int main()
{
using namespace std;
ant_year_end s1, s2, s3;
s1.year = ;
ant_year_end *point = &s2;
point->year = ;
ant_year_end trio[];
trio[].year = ;
cout << trio->year << endl;
const ant_year_end*arp[] = { &s1, &s2, &s3 };
cout << arp[]->year<< endl;
const ant_year_end**ppa = arp;
auto ppb = ppa;
cout << (*ppa)->year << endl;
cout << (*(ppa + ))->year << endl;
system("pause");
return ;
}
上段代码中,包含了几个重要的方面:
1 s1,s2,s3为结构体变量名,通过结构体变量名来访问结构体成员的方法是:结构体变量名.(这里有点)结构体成员。
2 point 为结构体指针 变量名,该变量存储了结构体变量s2的地址,即本质上,point指向了s2这个结构体。因此通过结构体指针来访问结构体变量成员的方法是 :
结构体指针->结构体成员。
3 trio是结构体数组,结构体数组访问成员的办法是:数组元[].结构体成员.即我们发现,采用变量名(无论是单个结构体变变量,还是数组形式),都采用.(点)的方式。
4 arp[3]是结构体指针数组,即本质是指针数组,即数组的每个元素都是指针,每个指针元素指向了之前的结构体变量,因此,访问结构体成员的方式为:结构体指针->成员名
5 ppa为指向指针的指针,本质上,这个变量是个指针,这个指针的内容,装的仍然是一个指针,访问结构体成员的方式:(*最外层指针)->结构体成员。
总结:
通过结构体变量名访问成员的方式是.(点),通过结构体指针(无论是多少层)访问成员的方式是->。
无论是多少层指针,他们在逻辑上是统一的,我们通过访问成员的方式可以发信这一点。
c++入门之初话指针的更多相关文章
- c++入门之出话指针和地址。
指针和地址是c和c++中重要的概念,在此,对指针做以下几方面的总结: new和delete: ]; point[] = ; point[] = ; point[] = ; cout << ...
- C++入门之初话多态与虚函数
多态性是面向对象程序设计的又一个重要思想,关于多态的详尽描述,请看本人的收藏https://www.cnblogs.com/hust-ghtao/p/3512461.html.这篇博文中,详尽的探讨了 ...
- c++入门之初话结构体
结构体是一种具有一定数据结构思想的数据类型,我们在对待结构体的时候,用该从数据结构的思想去审视结构体.下面给出结构体的定义 struct mystruct {]; int score; double ...
- c++学习之初话 函数指针和函数对象 的因缘
函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性. 函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a ...
- Go语言入门系列(五)之指针和结构体的使用
Go语言入门系列前面的文章: Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 1. 指针 如果你使用过C或C++,那你肯定对指针这个概念 ...
- c++入门之再话内存和引用
此处没有代码,仅仅讨论一些这样的问题:我们为何使用引用?在哪里使用引用? 首先从函数的角度思考?:函数进行一般参数传递的时候,是怎么样传递的?普通类型的参数传递,是将传递的实参复制一份,到另一个内存空 ...
- 飞控入门之C语言指针回顾
指针 何为指针?来个官方定义:指针是一个值为内存地址的变量(或数据对象). 一.指针的声明 //示例 int *pi; //pi是指向int类型变量的指针 char *pc; // pi是指向char ...
- 现代C++学习笔记之一入门篇:智能指针(C++ 11)
原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 在现代 C++ 编程中,标准库包含智能指针,该指针用于确保 ...
- 初话C++模板【用自己的话,解释清楚这些】
用自己的话解释清楚C++的模板编程 模板编程是为了解决什么问题而出现的? 提高代码的重用性,提高代码的利用率. 泛型编程的一种实现. 模板的精神是: 类型参数化. 模板的实现 模板分为:函数模板.类模 ...
随机推荐
- mysql性能排查思路
mysql性能瓶颈排查 top/free/vmstat/sar/mpstat 查看mysqld进程的cpu消耗占比 确认mysql进程的cpu消耗是%user, 还是sys%高 确认是否是物理内存 ...
- February 23rd, 2018 Week 8th Friday
It takes a strong man to save himself, and a great man to save another. 强者自救,圣者渡人. When you are not ...
- 服务创建&删除
创建服务.bat @echo.服务启动...... @echo off @sc create BestoneProductEditSvc binPath= "D:\winSvc\Beston ...
- 【Teradata】磁盘碎片整理(ferret工具)
DEFRAGMENTcombines free sectors and moves them to the end of a cylinder.PACKDISKfill (or packs) cyli ...
- orcFile split和读数据原理总结(hive0.13)
http://blog.csdn.net/zhaorongsheng/article/details/72903431 官网关于orcfile的介绍 背景 Hive的rcfile格式已经使用多年,但是 ...
- Kafka如何删除topic?
Kafka如何删除topic? 今天为大家带来“Kafka删除topic原理解析”,希望可以帮到那些苦于无法删除topic的朋友们. 前提条件: 在启动broker时候开启删除topic的开关,即在s ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- 两段锁协议(Two-Phase Locking――2PL)
两段锁协议(Two-Phase Locking――2PL) 两段锁协议规定所有的事务应遵守的规则: ① 在对任何数据进行读.写操作之前,首先要申请并获得对该数据的封锁. ② 在释放一个封锁之后,事务不 ...
- centos7+nginx负载均衡Tomcat服务
接着上一篇:www.cnblogs.com/lkun/p/8252815.html 我们在上一篇在一台centos7服务器上部署了两个nginx,接下来我们使用一个nginx实现tomcat的负载均衡 ...
- RSA简介
RSA概述 首先看这个加密算法的命名.很有意思,它其实是三个人的名字.早在1977年由麻省理工学院的三位数学家Rivest.Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏 ...