int (*p)[4] p 是二级指针 二维数组 二级指针 .xml
pre{
line-height:1;
color:#2f88e4;
background-color:#e9ffff;
font-size:16px;}.sysFunc{color:#3d7477;font-style:italic;font-weight:bold;}
.selfFuc{color:#a0b684;}
.bool{color:#86ddd8;}
.condition{color:#94e269;font-weight:bold;}
.key{color:#ae0bfd;}
.var{color:#e81cb6;font-style:italic;}
.Digit{color:#ef09ef;font-weight:bold;}
.includePre{color:#e4882f;}
.operator {color:#96d186;font-weight:bold;}
试验一:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*p)[4];
for(p=&a[0];p<&a[0]+3;p++)
cout<<&p<<endl;
0012FF40
0012FF40
0012FF40
for(p=&a[0];p<&a[0]+3;p++)
cout<<p<<endl;
0012FF44
0012FF54
0012FF64
for(p=&a[0];p<&a[0]+3;p++)
cout<<*p<<endl;
0012FF44
0012FF54
0012FF64
for(p=&a[0];p<&a[0]+3;p++)
cout<<**p<<endl;
1
5
9
总结如下:
p是一个二级指针
&p 是保存这个二级指针的单元地址 :0012FF40
p的值为:0012FF44
*p 是p所指向单元的内容,因为p是二级指针而且p指向一个组合单元(由四个整形共同组成),因此 编译器将 *p解释为组合单元中第一个元素的地址:0012FF44
**p 是第一行第一个元素的值 1
这个二级指针是很特殊的,因为: p和*p的值都是相同的 但是编译器会对他们做出不同的解释,p 解释为行的首地址,操作单位为行, *p 解释为行的第一个元素的地址, 操作单位为元素
同理 二维数组名a,也是一个二级指针
a 是行的首地址
*a 是行的第一个元素的首地址
试验二:
for(int i=0;i<12;i++)
cout<<**a<<endl;
1
1
1
1
1
1
1
1
1
1
1
1
for(int i=0;i<12;i++)
cout<<**(a+i)<<endl;
1
5
9
4232719
1447838469
1245116
476002356
4269248
2088857559
-2141931795
2088999592
0
for(int i=0;i<12;i++)
cout<<*(*a+i)<<endl;
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=0;i<12;i++)
cout<<&a<<endl;
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
for(int i=0;i<12;i++)
cout<<a<<endl;
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
for(int i=0;i<12;i++)
cout<<*a<<endl;
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
0012FF44
for(int i=0;i<12;i++)
cout<<**a<<endl;
1
1
1
1
1
1
1
1
1
1
1
1
由上可看出 数组名是一个特殊的指针 因为&a 与 a 的值相同 , 也就是系统不为数组名另分配一个地址空间
另外,数组名也是一个二级指针
本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。
int (*p)[4] p 是二级指针 二维数组 二级指针 .xml的更多相关文章
- C++笔记-数组指针/二维数组转换指针
参考资料: 1. 作者 BensonLaur :https://www.cnblogs.com/BensonLaur/p/6367077.html 2. https://blog.csdn.net/ ...
- [C++]数组与指针[二维数组与指针]
- 二维数组和指针(C语言)
二维数组和指针 二维数组和指针1.二维数组和数组元素的地址若有以下定义:int *p, a[3][4]; 1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的 ...
- C/C++——二维数组与指针、指针数组、数组指针(行指针)、二级指针的用法
本文转载自:https://blog.csdn.net/qq_33573235/article/details/79530792 1. 二维数组和指针 要用指针处理二维数组,首先要解决从存储的角度对二 ...
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- 关于c语言二维数组与指针的个人理解及处理办法。
相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...
- C指针 指针和数组 二维数组的指针 指针应用
直接到变量名标识的存储单元中读取变量的值--直接寻址 通过其他变量间接找到变量的地址读取变量的值--间接寻址 指针变量存放地址 显示变量的地址 指针变量使用前必须初始化,若不知指向哪,可先指向NULL ...
随机推荐
- 305. Number of Islands II
题目: A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand ...
- POJ3267——The Cow Lexicon(动态规划)
The Cow Lexicon DescriptionFew know that the cows have their own dictionary with W (1 ≤ W ≤ 600) wor ...
- myplan
告警集成平台 – OneAlert(空) JumpServer-开源跳板机(堡垒机)搭建(空) Suricata入侵检测.防御系统搭建(空) Snort入侵检测系统搭建(空) OpenVas开放式漏洞 ...
- Linux内核通杀提权漏洞CVE-2016-5195 - 内核升级方法
如题,对于脏牛(Dirty COW)漏洞的修复方式已经在上篇文章中有介绍过如何验证,这里对如何升级内核给出修复建议. (注意:为避免不必要的生产风险的发生,请审核自己的实际环境而决定采用什么方法进行升 ...
- RAID
RAID(is short for redundant arrays of independent disks) 独立/廉价磁盘冗余阵列.基本思想:把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使 ...
- 巧用cssText属性批量操作样式
给一个HTML元素设置css属性,如 1 2 3 4 var head= document.getElementById("head"); head.style.width = & ...
- Js判断一个单词是否有重复字母
今天上午刷到一道题,大体是写一个方法判断一个单词中是否有重复的字母(或者说一个字符串中是否有重复的字符).我的思路是一个字符一个字符地遍历,如果发现有重复的停止: function isIsogram ...
- Oracle INV - SO line backorder API
--Sales Order Lines to backorder API--===================================--SET serveroutput on size ...
- Css中光标,DHTML,缩放的使用
Css中光标的使用: 属性名称 属性值 说明cursor ...
- R语言缺失值信息处理
mean(!is.na(mat))可以计算数据完整度(没有缺失值的) mean(!is.na(mat))>0.9,90%完整可以使用 # 缺失值的位置研究as.vector(attributes ...