指针与二维数组

根据上面的图,我现在写一些语句,我们一起来判断输出值是多少!!

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. 用指针来表示二维数组的方法

    1.类型说明 int *b;  //定义一个int型指针变量 int *p[3];   //定义一个int型指针数组的变量 int (*c)[3]  和  int (*)[3]:   //定义一个指向 ...

  2. C语言学习之有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值

    有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值. int main(){int a[3][4];int i,j,*p;//p是 int *型指针变量printf("请 ...

  3. 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...

    例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...

  4. 二维数组和指针(包含交换二维数组行列)

    有必要对a[i]的性质作进一步说明.a[i]从形式上看是a数组中的第i个元素.如果a是一维数组名,则a[i]代表a数组第i个元素所占的内存单元的内容.a[i]是有物理地址的,是占内存单元的.但如果a是 ...

  5. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组内存大小计算 | 指针跳转步长问题 )

    文章目录 一.二维数组内存大小计算 二.二维数组内存大小意义 一.二维数组内存大小计算 给定一个二维数组 : 该 二维数组 中有 444 个 一维数组 , 每个一维数组有 101010 个 char ...

  6. 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...

  7. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

    文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...

  8. c语言指针怎样代替二维数组,c语言 指针和二维数组

    // 指针和二维数组 #include int main(int argc, const char * argv[]) { int a[3][6]; for (int i=0; i<3; i++ ...

  9. 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 ...

最新文章

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
  2. 两台服务器安装redis集群_Redis Cluster搭建高可用Redis服务器集群
  3. wxWidgets:TextCtrl示例
  4. Linux系列开坑记(二)-神的编辑器Vim
  5. crt脚本 js 在_crt脚本 js 在_使用SecureCRT自带的脚本录制功能。
  6. Java 打包 FatJar 方法小结
  7. Java中重载和复写的区别
  8. 用 WebClient 轻松实现文件下载上传、网页抓取
  9. 信息学奥赛一本通(2035:【例5.2】平移数据)
  10. SQL必知必会-检索数据
  11. Python 35 线程(1)线程理论、开启线程的两种方式
  12. 曾被“劝退”的 C++ 20 正式发布!
  13. 2018-05-04 http入门
  14. 办公自动化——Python操作Excel案例
  15. SSM框架运行原理以及流程
  16. AndroidStudio高级计算器三角函数对数
  17. 库克说他在上大学时学会了编程,你呢?
  18. git安装、使用、建立github远程仓库、克隆远程仓库
  19. Xilinx FPGA平台GTX简易使用教程(一)GTX基础知识
  20. ppt高级动画效果如何循环起来?

热门文章

  1. JAVA调用C语言程序
  2. ann2snn的代码分析
  3. neo4j查询节点的出度与入度的数量
  4. 数字图像处理 频率域平滑 MATLAB实验
  5. Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
  6. Flume监控几种方式
  7. python有趣的函数_Python中有趣在__call__函数
  8. xposed hook java_[原创]Android Hook 系列教程(一) Xposed Hook 原理分析
  9. vim怎么跳转到函数定义处_Vim、gvim操作跳转光标区块和代码块的跳转
  10. eclipse怎么配置python解释器,在Eclipse中配置Pydev Interpreter以使用Enthought Python分发...