C ++ 指针 | 指针与二维数组_5
指针与二维数组
根据上面的图,我现在写一些语句,我们一起来判断输出值是多少!!
int (*p)[3] = B;
print B;
这个会打印多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
400
print *B;
这个会打印多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
400
print B[0];
这个会打印多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
400
print B[0][0];
这个会打印多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
400
print(B+1);
这个会等于多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
412
print(*(B+1))
这个会等于多少?
思考一下。。。。。。。
。。。
。。。
。。。
打印:
412
okay,以上是二维数组与一维不一样的输出。我们总结为以下:
B[ i ][ j ] = *( B[ i ] + j ) = *( *( B + i ) + j )
解释:
*( B[ i ] + j ) :
我们知道 B[ i ] 是一个地址,指定第几行的头地址。+j,也就是第几行的具体的某个地址。
因为 B[ i ] 和 *( B + i ) 是相等的,都是返回数组的第几行的头地址,所以也就等于 *( *( B + i ) + j ) 。
B[ i ][ j ] 其实就是一个转换 *( *( B + i ) + j ) 的语法。
另外,下面这句是什么意思 呢?
int (*p)[3] = B;
( *p ) 就是指向数组第一个元素的指针。
对代码不满足,是任何真正有天才的程序员的根本特征。
C ++ 指针 | 指针与二维数组_5相关推荐
- 用指针来表示二维数组的方法
1.类型说明 int *b; //定义一个int型指针变量 int *p[3]; //定义一个int型指针数组的变量 int (*c)[3] 和 int (*)[3]: //定义一个指向 ...
- C语言学习之有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值
有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值. int main(){int a[3][4];int i,j,*p;//p是 int *型指针变量printf("请 ...
- 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...
例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...
- 二维数组和指针(包含交换二维数组行列)
有必要对a[i]的性质作进一步说明.a[i]从形式上看是a数组中的第i个元素.如果a是一维数组名,则a[i]代表a数组第i个元素所占的内存单元的内容.a[i]是有物理地址的,是占内存单元的.但如果a是 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组内存大小计算 | 指针跳转步长问题 )
文章目录 一.二维数组内存大小计算 二.二维数组内存大小意义 一.二维数组内存大小计算 给定一个二维数组 : 该 二维数组 中有 444 个 一维数组 , 每个一维数组有 101010 个 char ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...
- c语言指针怎样代替二维数组,c语言 指针和二维数组
// 指针和二维数组 #include int main(int argc, const char * argv[]) { int a[3][6]; for (int i=0; i<3; i++ ...
- C语言指针怎么存二维数组,C语言怎么用指针代替二维数组
1.设p是指向二维数组a[m][n]的指针变量,则有:int*p=a[0];//此时P是指向一维数组的指针.P++后,p指向a[0][1].2.如果定义int(*p1)[n];p1=a;p1++后,p ...
最新文章
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
- 两台服务器安装redis集群_Redis Cluster搭建高可用Redis服务器集群
- wxWidgets:TextCtrl示例
- Linux系列开坑记(二)-神的编辑器Vim
- crt脚本 js 在_crt脚本 js 在_使用SecureCRT自带的脚本录制功能。
- Java 打包 FatJar 方法小结
- Java中重载和复写的区别
- 用 WebClient 轻松实现文件下载上传、网页抓取
- 信息学奥赛一本通(2035:【例5.2】平移数据)
- SQL必知必会-检索数据
- Python 35 线程(1)线程理论、开启线程的两种方式
- 曾被“劝退”的 C++ 20 正式发布!
- 2018-05-04 http入门
- 办公自动化——Python操作Excel案例
- SSM框架运行原理以及流程
- AndroidStudio高级计算器三角函数对数
- 库克说他在上大学时学会了编程,你呢?
- git安装、使用、建立github远程仓库、克隆远程仓库
- Xilinx FPGA平台GTX简易使用教程(一)GTX基础知识
- ppt高级动画效果如何循环起来?
热门文章
- JAVA调用C语言程序
- ann2snn的代码分析
- neo4j查询节点的出度与入度的数量
- 数字图像处理 频率域平滑 MATLAB实验
- Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
- Flume监控几种方式
- python有趣的函数_Python中有趣在__call__函数
- xposed hook java_[原创]Android Hook 系列教程(一) Xposed Hook 原理分析
- vim怎么跳转到函数定义处_Vim、gvim操作跳转光标区块和代码块的跳转
- eclipse怎么配置python解释器,在Eclipse中配置Pydev Interpreter以使用Enthought Python分发...