#include <iostream>
using namespace std;
int main(int argc, char** argv) {float h_ranges[] = { 100.5, 200.5 };float s_ranges[] = { 300.5, 400.5 };const float* ranges[] = { h_ranges, s_ranges };//是一个二维数组cout<<"指针数组如下:\n\nfloat h_ranges[] = { 100.5, 200.5 };\nfloat s_ranges[] = { 300.5, 400.5 };\nconst float* ranges[] = { h_ranges, s_ranges }; "<<endl;cout << "\n输出如下:\n" << endl;cout << "打印的表达式\t表达式的输出值\n" << endl;cout << "===================================" << endl;cout << "ranges[0][0]\t" << ranges[0][0] << "\t" << &(ranges[0][0]) << endl;cout << "ranges[0][1]\t" << ranges[0][1] << "\t" << &(ranges[0][1]) << endl;cout << "ranges[1][0]\t" << ranges[1][0] << "\t" << &(ranges[1][0]) << endl;cout << "ranges[1][1]\t" << ranges[1][1] << "\t" << &(ranges[1][1]) << endl;cout << "===================================" << endl;cout << "ranges[0]\t" << ranges[0] << endl;cout << "ranges[1]\t" << ranges[1] << endl;cout << "*(ranges[0])\t" << *(ranges[0]) << endl;cout << "*(ranges[1])\t" << *(ranges[1]) << endl;cout << "*(ranges[0])+1\t" << *(ranges[0]) + 1 << endl;cout << "*(ranges[1])+1\t" << *(ranges[1]) + 1 << endl;cout << "*(ranges[0]+1)\t" << *(ranges[0] + 1) << endl;cout << "*(ranges[1]+1)\t" << *(ranges[1] + 1) << endl;cout << "===================================" << endl;cout << "ranges\t\t" << ranges << endl;cout << "*(ranges)\t" << *(ranges) << endl;cout << "*(*(ranges))\t" << *(*(ranges)) << endl;cout << "ranges+1\t" << ranges + 1 << endl;cout << "*(ranges+1)\t" << *(ranges + 1) << endl;cout << "&ranges\t\t" << &ranges << endl;cout << "&ranges+1\t" << &ranges+1 << endl;cout << "===================================" << endl;cout << "sizeof(h_ranges)\t" << sizeof(h_ranges) << endl;cout << "sizeof(s_ranges)\t" << sizeof(s_ranges) << endl;cout << "sizeof(h_ranges[0])\t" << sizeof(h_ranges[0]) << endl;cout << "sizeof(h_ranges[1])\t" << sizeof(h_ranges[1]) << endl;cout << "sizeof(ranges)\t\t" << sizeof(ranges) << endl;cout << "sizeof(&ranges)\t\t" << sizeof(&ranges) << endl;cout << "sizeof(ranges[0])\t" << sizeof(ranges[0]) << endl;
}

输出:

指针数组如下:float h_ranges[] = { 100.5, 200.5 };
float s_ranges[] = { 300.5, 400.5 };
const float* ranges[] = { h_ranges, s_ranges };输出如下:打印的表达式    表达式的输出值===================================
ranges[0][0]    100.5   000000384937F818
ranges[0][1]    200.5   000000384937F81C
ranges[1][0]    300.5   000000384937F838
ranges[1][1]    400.5   000000384937F83C
===================================
ranges[0]       000000384937F818
ranges[1]       000000384937F838
*(ranges[0])    100.5
*(ranges[1])    300.5
*(ranges[0])+1  101.5
*(ranges[1])+1  301.5
*(ranges[0]+1)  200.5
*(ranges[1]+1)  400.5
===================================
ranges          000000384937F858
*(ranges)       000000384937F818
*(*(ranges))    100.5
ranges+1        000000384937F860
*(ranges+1)     000000384937F838
&ranges         000000384937F858
&ranges+1       000000384937F868
===================================
sizeof(h_ranges)        8
sizeof(s_ranges)        8
sizeof(h_ranges[0])     4
sizeof(h_ranges[1])     4
sizeof(ranges)          16
sizeof(&ranges)         8
sizeof(ranges[0])       8
请按任意键继续. . .

琢磨吧

C++:指针数组理解相关推荐

  1. const指针、数组指针、指针数组理解

    指针中,关键字const放在不同的位置表示的意义: 1.const int *p; 这种情况下,表示的是一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但是指针本身的值可以改变,即指针可以指 ...

  2. c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组

    二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...

  3. 指向数组的指针的理解

    指向数组的指针的理解 开发工具与关键技术:Visual Studio.C++ 作者:张国军 撰写时间:2019年05月03日 数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值. ...

  4. 深入理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针

    指针数组 表达式为:int *p[5] 理解:下标运算符[ ]的优先级是要高于指针运算符*,因此p先和下标运算符结合,决定了p首先是个数组,其类型int *,表明数组的元素都是都是指针.而数组占多少个 ...

  5. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  6. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  7. C指针9:指针数组(即数组中的每个元素都是指针)

    前边已经讲过数组指针,强调的是指针,意思就是该指针指向的是数组(数组里边的元素一般为普通数据). 指针数组,强调的是数组,意思就是该数组里边的每个元素都是指针类型.即如果一个数组中的所有元素保存的都是 ...

  8. 64位程序怎么判断指针是否有效_C 语言指针怎么理解?

    注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...

  9. c语言函数指针的理解与使用(学习)

    1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: 1 2 3 A) char * (*fun1)(char * p1,char * p2); B) char  ...

最新文章

  1. linux 程序、动态库、静态库内部添加版本号和编译时间
  2. linux mysql互为主从_mysql互为主从配置(双主模型)
  3. jQuery对象与dom对象的转换
  4. HDU - 5878 A - I Count Two Three H 技巧枚举
  5. mac电脑如何与手机同步复制粘贴_如何将电脑里的文件同步到手机里?
  6. Material Design入门(二)
  7. [转]形态学操作:膨胀与腐蚀
  8. 彻底理解js是单线程
  9. 华为服务器扩容内存进不去系统,服务器换内存系统出问题吗
  10. NC单点登录设置默认界面
  11. PbootCMS百度小程序插件 DIY拖拽可视化布局 多端合一 一步到位
  12. 系统架构设计笔记(80)—— .NET
  13. 四年级语文期中测试卷
  14. 软件工作量评估方法(一)
  15. TypeWriter: Neural Type Prediction with Search-based Validation基于搜索的神经网络预测器
  16. 测试方法介绍-计算模型复杂度(GMac)、模型大小(M)、计算速度(FPS)
  17. 如何查看手机APP的包名,并快速查找
  18. 发布:世界上第一个小米平板4上的Debian Linux 刷机包
  19. html中 a链接的默认样式,超链接的默认样式
  20. 如果期权买方真有这么好,为什么大户和机构都不做,而是散户在做!!!

热门文章

  1. JavaEE基础(05):过滤器、监听器、拦截器,应用详解
  2. 数据结构基础(9) --单链表的设计与实现(2)之高级操作
  3. pandas 基本使用
  4. SpringBoot使用@Cacheable实现最简单的Redis缓存
  5. 27、简述redis的有哪几种持久化策略及比较?
  6. hadoop3.0.3 SLS-Failed to create an AM
  7. How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes
  8. Java序列化接口的作用总结
  9. IOS开发UI篇—导航控制器属性和基本使用
  10. 天线增益英文名称:antenna gain