c/c++关于指针的一点理解
#include <iostream>
#include <string> using namespace std; int main()
{
int m{}, n{};
cout << "m的地址为: -> " << &m << endl
<< "n的地址为: -> " << &n << endl << endl; /* 指针数组 */
int* b[] = {&m, &n}; //创建匿名【指针数组】,b指向数组b的每一个元素
auto c = &b; // 创建指针c指向指针数组b第一个元素的地址
int** d = b; // 也可以使用auto d = b,二级指针 cout << "b指针存放结果:" << b << endl
<< "b指针数组当前指向元素:" << *b << endl //*b == b[0]
<< "b指针数组当前指向元素指向内容:" << *b[] << endl << endl; cout << "c指针存放结果:" << c << endl
<< "c指针数组当前指向元素:" << *c << endl
<< "c指针数组当前指向元素指向内容:" << *(*c)[] << endl << endl; cout << "d指针存放结果:" << d << endl
<< "d指针数组当前指向元素:" << *d << endl
<< "d指针数组当前指向元素指向内容:" << *d[] << endl << endl; /* 数组指针 */
int list[] = {m, n};
int (*p)[] = &list; //创建【数组指针】,指向数组list的第一个元素 auto q = p; //指针赋值, 浅拷贝,p为 “int (*)[2]”类型
cout << "p的内存地址为:" << p << " 指向元素:"<< (*p)[] << endl
<< "q的内存地址为:" << q << endl; int x = ; // 分配一块内存,标记为x,存放1,格式为 int*
int* y = &x; // 分配一块内存,标记为y,存放x的地址,格式为 int*
int** z = &y; // 分配一块内存,标记为z,存放x地址的地址,格式为 int**
int** v = z; // 指针浅拷贝
auto u = &y; // 同第三个,但是格式自动判断,指向关于x的指针y的存放地址 }
m的地址为: -> 0x7ffd33436d9c
n的地址为: -> 0x7ffd33436da0
b指针存放结果:0x7ffd33436df0
b指针数组当前指向元素:0x7ffd33436d9c
b指针数组当前指向元素指向内容:2222
c指针存放结果:0x7ffd33436df0
c指针数组当前指向元素:0x7ffd33436df0
c指针数组当前指向元素指向内容:2222
d指针存放结果:0x7ffd33436df0
d指针数组当前指向元素:0x7ffd33436d9c
d指针数组当前指向元素指向内容:2222
p的内存地址为:0x7ffd33436de8 指向元素:2222
q的内存地址为:0x7ffd33436de8
个人总结:
1. 数组指针和数组指针 (区分的重点在于括号 [ ] 优先级高于解除引用运算符*)

- 指针数组,是一个包含很多指针的数组,如:
int* b[] = {&m, &n}; //有一个匿名【指针数组】,长度为2,格式为int,每一个元素都是一个指针,访问内容可以使用 *a[0]数组指针,是指向数组的指针,如:
int list[] = {m, n};
int (*p)[] = &list; //创建【数组指针】,指向数组list的第一个元素,访问第一个元素用(*p)[0]
2. 关于*,**的理解
int x = ; // 分配一块内存,标记为x,存放1,格式为 int*
int* y = &x; // 分配一块内存,标记为y,存放x的地址,格式为 int*
int** z = &y; // 分配一块内存,标记为z,存放x地址的地址,格式为 int**
int** v = z; // 指针浅拷贝
auto u = &y; // 同第三个,但是格式自动判断,指向关于x的指针y的存放地址
c/c++关于指针的一点理解的更多相关文章
- 对C++多态的一点理解
作为一个C++新手,我浅谈一下我对多态的一点理解. 首先,引用几句话: 1.继承是一种抽象,它允许程序员在某些时候忽略相似对象的差异,又在其他时候利用这些差异.——<C++沉思录> 2.继 ...
- 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)
1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表) 例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...
- opencv笔记5:频域和空域的一点理解
time:2015年10月06日 星期二 12时14分51秒 # opencv笔记5:频域和空域的一点理解 空间域和频率域 傅立叶变换是f(t)乘以正弦项的展开,正弦项的频率由u(其实是miu)的值决 ...
- 对socket的一点理解笔记
需要学web service,但是在视频中讲解到了socket套接字编程.以前貌似课上老师有提过,只是没用到也感觉乏味.现在遇到,自己看了些博客和资料.记录一点理解,不知正确与否. 首先说这个名字,叫 ...
- LWIP协议中tcp_seg结构相关指针的个人理解
我曾经写在新浪博客上面,后来复制到这,图片就不行了. 原文地址转载 LWIP协议中tcp_seg结构相关指针的个人理解(http://blog.sina.com.cn/s/blog_7e586985 ...
- iOS 的一点理解(一) 代理delegate
做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...
- 关于web开发的一点理解
对于web开发上的一点理解 1 宏观上的一点理解 网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端 服务端通过解析报文并处理报文最后把处理的结果 ...
- angular.js的一点理解
对angular.js的一点理解 2015-01-14 13:18 by MrGeorgeZhao, 317 阅读, 4 评论, 收藏, 编辑 最近一直在学习angular.js.不得不说和jquer ...
- RxSwift 入坑好多天 - 终于有了一点理解
一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就 ...
随机推荐
- 从 Confluence 5.3 及其早期版本中恢复空间
如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话.你可以使用临时的 Confluence 空间安装,然后将 ...
- Confluence 6 Oracle 驱动输入你的数据库细节
Confluence 的安装向导将会指导你一步一步的在 Confluence 中配置安装 Oracle 数据库. 使用 JDBC 连接(默认) JDBC 是推荐的连接你的 Confluence 到数据 ...
- 【数据库】MySQL的左连接、右连接和全连接的实现
表student:+----+-----------+------+| id | name | age |+----+-----------+------+| 1 | Jim | 18 || 2 | ...
- ionic3 Injectable 引入NavController
在service里 引入 navcontroller 报错 And I get error No provider for NavController. 一个比较容易解决的方法, import {Io ...
- PHP之十六个魔术方法
1.__construct,__destruct__constuct构建对象的时被调用:__destruct明确销毁对象或脚本结束时被调用:2.__get,__set__set当给不可访问或不存在属性 ...
- 在线版区间众数 hzw的代码。。
/* 查询区间众数,要求强制在线 设有T个块 1.众数只可能在大块[L,R]里或者两端[l,L) (R,r]里出现 2.大块的众数只要预处理打表一下即可,复杂度n*T(这样的区间有T*T个) 3.两端 ...
- bzoj2200拓扑排序+最短路+联通块
自己写的不知道哪里wa了,明明和网上的代码差不多.,. /* 给定一张图,有的边是无向边,有的是有向边,有向边不会出现在环中,且有可能是负权值 现在给定起点s,求出s到其余所有点的最短路长度 任何存在 ...
- AI-DRF权限、频率
权限 权限逻辑 权限逻辑 权限组件可以设置在三个地方:写在每个类下边表示,访问这个类的数据时,没有权限就不能访问:写在全局,表示访问每个字段的数据都需要权限:还有默认已经也写好了. 写在每个类中:写一 ...
- 微信录音文件上传到服务器以及amr转化成MP3格式,linux上转换简单方法
微信公众号音频接口开发 根据业务需求,我们可能需要将微信录音保存到服务器,而通过微信上传语音接口上传到微信服务器的语音文件的有效期只有3天,所以需要将文件下载到我们自己的服务器. 上传语音接口 wx. ...
- 【第一部分】07Leetcode刷题
二.寻找旋转排序数组中的最小值 题目:153. Find Minimum in Rotated Sorted Array C++ Soution 1: class Solution { public: ...