#include <iostream>

int main()
{ int d2a[][] = { , , , , , , , , , , , }; //输出 0,1,2,3,4,5,6,7,8,9,10,11
for (size_t i = ; i < ; i++)
{
for (size_t j = ; j < ; j++)
{
std::cout << d2a[i][j] << ",";
}
} //输出 0077FD04,0077FD04,0077FD14,0077FD24
//可见二维数组名是数据首地址,d2a[0],d2a[1],d2a[2]分别是第一行,第二行,第三行的首地址
std::cout << d2a << "," << d2a[] << "," << d2a[] << "," << d2a[] << std::endl; //最直观的顺序输出所有元素的方式
//输出 0,1,2,3,4,5,6,7,8,9,10,11
int* pa = (int*)d2a;
for (size_t i = ; i < ; i++)
{
std::cout << *(pa + i) << ",";
} //最难理解的二维数组名当指针的输出方式
//输出 0,1,2,3,4,5,6,7,8,9,10,11
for (size_t i = ; i < ; i++)
{
std::cout << *(*d2a + i) << ","; //错误方式,虽然二维数组指向数组首地址,但相当于行指针,d2a+0 = d2a[0], d2a+1 = d2a[1],d2a+2=d2a[2]
//std::cout << *(d2a + i) << ","; } //理解了二维数组名的实质后,下面的就容易理解了
char str[] = "ab";
char(*px)[] = &str; (*px)[] = 'a';
(*px)[] = 'b';
(*px)[] = 'c';
}

C++二维数组名的再探索的更多相关文章

  1. C/C++二维数组名和二级指针

    转载 :https://blog.csdn.net/wu_nan_nan/article/details/51741030  作者:吴一奇 1. 指针1.1 一个指针包含两方面:a) 地址值:b) 所 ...

  2. C++ 指针与二维数组名

    和一维数组类似,C++ 将二维数组名解释为其第一个元素的地址,而二维数组的第一个元素为一维数组,以下面的程序为例,二维数组名 array2d 和 &array2d[0] 等效,它们的类型都为 ...

  3. 深入理解C/C++二维数组

    深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...

  4. 二维数组和指针(C语言)

    二维数组和指针 二维数组和指针1.二维数组和数组元素的地址若有以下定义:int *p, a[3][4]; 1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的 ...

  5. C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数

    1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...

  6. Java 数组(三)二维数组

    如果一维数组的各个元素仍然是一个数组,那么它就是一个二维数组.二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表所在的列. 一.二维数组的创建 1.先声明, ...

  7. C语言教学--二维数组和指针的理解

    对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...

  8. int (*p)[4] p 是二级指针 二维数组 二级指针 .xml

    pre{ line-height:1; color:#2f88e4; background-color:#e9ffff; font-size:16px;}.sysFunc{color:#3d7477; ...

  9. C++ 二维数组(双重指针作为函数参数)

    本文的学习内容参考:http://blog.csdn.net/yunyun1886358/article/details/5659851 http://blog.csdn.net/xudongdong ...

随机推荐

  1. weex 通用样式以及需要注意的问题

    一.说明 weex 对于 css 样式的支持是非常有限的,并且使用样式的时候,必须遵循 weex 定义的规则. 对于不遵循 weex 样式规则的代码,往往在 web 页面上有效,而在 native 环 ...

  2. DNS解析综合学习案例(附详细答案)

    1.用户需把/dev/myvg/mylv逻辑卷以支持磁盘配额的方式挂载到网页目录下2.在网页目录下创建测试文件index.html,内容为用户名称,通过浏览器访问测试3.创建用户账户,对LVM配置磁盘 ...

  3. 2019.9.19HTML基础

    html:超文本标记语言,不是编程语言,是标签语言,显示数据. 有双标签和单标签 双标签:有开始有结束,<body></body> 单标签:只有一个.<img src=# ...

  4. windows10 mysql主从复制配置

    注意:mysql主从复制,主从版本要一致! 生手永远在学习的路上,为了学习mysql主从复制,实现读写分离,于是在本地安装多个mysql实例来进行验证. 也因此有了下面的笔记,一来自我总结一下经验,二 ...

  5. poj 1655 找树的重心

    树形DP 求树的重心,即选择一个结点删去,使得分出的 若干棵树的结点数 的最大值最小 #include<map> #include<set> #include<cmath ...

  6. CI/CD----jenkins+gitlab+django(内网)

    1.py第三方包获取 ./pip3 ./pip3 -i "http://pypi.douban.com/simple/" --trusted-host pypi.douban.co ...

  7. HttpServlet容器响应Web客户请求流程?

    1)Web客户向Servlet容器发出Http请求: 2)Servlet容器解析Web客户的Http请求: 3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息: ...

  8. Python 3标准库 第五章 数学运算

    第五章数学运算-----------------------上下文解释:编程时,我们一般也是先给程序定义一些前提(环境变量.描述环境变化的全局变量等),这些“前提”就是上文,然后再编写各功能模块的代码 ...

  9. java和c中i++(i--)的区别(网易笔试2014)

    java代码: public class Test{ public static void main(String[] args){ int a=5; int b=(a++)*(a++);//5*6自 ...

  10. C# 扩展方法——mysql-dapper(MySqlMapperExtensions)

    其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 反射比较耗费性能,反射得到属性进行缓存 根据反射得到的属性,进行动态拼接sql语句 ...