C++:指针数组理解
#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++:指针数组理解相关推荐
- const指针、数组指针、指针数组理解
指针中,关键字const放在不同的位置表示的意义: 1.const int *p; 这种情况下,表示的是一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但是指针本身的值可以改变,即指针可以指 ...
- c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组
二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...
- 指向数组的指针的理解
指向数组的指针的理解 开发工具与关键技术:Visual Studio.C++ 作者:张国军 撰写时间:2019年05月03日 数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值. ...
- 深入理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
指针数组 表达式为:int *p[5] 理解:下标运算符[ ]的优先级是要高于指针运算符*,因此p先和下标运算符结合,决定了p首先是个数组,其类型int *,表明数组的元素都是都是指针.而数组占多少个 ...
- C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针
1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...
- 关于C语言中的数组指针、指针数组以及二级指针
概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...
- C指针9:指针数组(即数组中的每个元素都是指针)
前边已经讲过数组指针,强调的是指针,意思就是该指针指向的是数组(数组里边的元素一般为普通数据). 指针数组,强调的是数组,意思就是该数组里边的每个元素都是指针类型.即如果一个数组中的所有元素保存的都是 ...
- 64位程序怎么判断指针是否有效_C 语言指针怎么理解?
注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...
- c语言函数指针的理解与使用(学习)
1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: 1 2 3 A) char * (*fun1)(char * p1,char * p2); B) char ...
最新文章
- linux 程序、动态库、静态库内部添加版本号和编译时间
- linux mysql互为主从_mysql互为主从配置(双主模型)
- jQuery对象与dom对象的转换
- HDU - 5878 A - I Count Two Three H 技巧枚举
- mac电脑如何与手机同步复制粘贴_如何将电脑里的文件同步到手机里?
- Material Design入门(二)
- [转]形态学操作:膨胀与腐蚀
- 彻底理解js是单线程
- 华为服务器扩容内存进不去系统,服务器换内存系统出问题吗
- NC单点登录设置默认界面
- PbootCMS百度小程序插件 DIY拖拽可视化布局 多端合一 一步到位
- 系统架构设计笔记(80)—— .NET
- 四年级语文期中测试卷
- 软件工作量评估方法(一)
- TypeWriter: Neural Type Prediction with Search-based Validation基于搜索的神经网络预测器
- 测试方法介绍-计算模型复杂度(GMac)、模型大小(M)、计算速度(FPS)
- 如何查看手机APP的包名,并快速查找
- 发布:世界上第一个小米平板4上的Debian Linux 刷机包
- html中 a链接的默认样式,超链接的默认样式
- 如果期权买方真有这么好,为什么大户和机构都不做,而是散户在做!!!
热门文章
- JavaEE基础(05):过滤器、监听器、拦截器,应用详解
- 数据结构基础(9) --单链表的设计与实现(2)之高级操作
- pandas 基本使用
- SpringBoot使用@Cacheable实现最简单的Redis缓存
- 27、简述redis的有哪几种持久化策略及比较?
- hadoop3.0.3 SLS-Failed to create an AM
- How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes
- Java序列化接口的作用总结
- IOS开发UI篇—导航控制器属性和基本使用
- 天线增益英文名称:antenna gain