C 二维指针难点详解。
关于 指向二维数组的指针。
int a[2][3];
int *p;
int (*p_1)[3];
可以用p_1 = a ,但是不能用p = a ;
因为此时数组a的数据类型是 int (* x)[3],所以不能用p=a赋值。
可以p=&a[0][0];这样赋值p。
用p_1=a时,*(p_1+1)此时相当于用*号将指向第一行的指针变为 指向第一行第0列(&a[1][0])地址的指针的,虽然不加* 两者的地址一样,但是所属的数据类型不一样,加了一个*号相当于让 数据类型 “降维”了,从“二维”变道“一维”了。 (行指针到列指针)(行指针相当于存储列指针的指针数组)
还有下列的例子
int main()
{
int a[3][2] = {9,6,1,7,8,3};
int *p[3],i,j,(*n)[2];
int **q;
n= a;
p[0] = a[0];//这里存放的是 a[0][0]的地址
p[1] = a[1];//第一行第0列的地址
p[2] = a[2];//第二行第0列的地址
q = p;
for(i = 0; i<3;i++)
{
for(j = 0;j<2;j++)
{
printf("%d %d %d ",*(p[i]+j),*(*(p+i)+j),p[i][j]);
printf("%d %d %d ",*(q[i]+j),*(*(q+i)+j),q[i][j]);
}
}
printf("\n%d\n",*(*(n)+2));
}
VC6.0下,两个printf打印的数据一样。
另外,[ ]号也可以将二维降到一维。
C 二维指针难点详解。的更多相关文章
- Hadoop Mapreduce分区、分组、二次排序过程详解[转]
原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2) ...
- (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)
LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...
- Velocity魔法堂系列二:VTL语法详解
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...
- C++实现离散余弦变换(参数为二维指针)
C++实现离散余弦变换(参数为二维指针) 写在前面 到目前为止已经阅读了相当一部分的网格水印等方面的论文了,但是论文的实现进度还没有更上,这个月准备挑选一些较为经典的论文,将其中的算法实现.在实现论文 ...
- C语言里的指针探析——type *name[] 在函数参数里面,是一个二维指针
type *name[] 在函数参数里面声明和不在函数里面声明其实不一样. type *name[] 如果在函数参数里声明,则name 是一个二维指针,并不是一个指针数组,而如果不在函数参数里声明,则 ...
- 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail
面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...
- 二维指针*(void **)的研究(uC/OS-II案例) 《转载》
uC/OS-II内存管理函数内最难理解的部分就是二维指针,本文以图文并茂的方式对二维指针进行了详细分析与讲解.看完本文,相信对C里面指针的概念又会有进一步的认识. 一.OSMemCreate( ) 函 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- 自动化运维工具——puppet详解(一)
一.puppet 介绍 1.puppet是什么 puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning).配置(configur ...
随机推荐
- oracle 父子级 查询
SELECT * FROM T_ASSETS_TYPE t CONNECT by t.UNIQUE_CODE = prior t.SUP_ASSETS_CODE start with t.UNIQUE ...
- 《浪潮之巅》(第2版):精彩的IT商战史
2011年看过第一版.以为看新版会跳过大部分看过的内容,结果发现还是从头到尾看了一遍,2011年看过的内容已经记不太确切了:) 另外IT的历史太精彩了,许多故事都知道,再看还是挺有意思.当然作者的文字 ...
- Xpath定位_1:子找父以及contains的用法
先上xml代码,如下图,在写自动化脚本时,需要定位到数字为10334的td元素.td元素的父元素.父的父元素以及属性值都一样:只有同胞元素的元素值不同.以此可以通过先定位到同胞元素,在找到父元素下的期 ...
- mvc做网站怎么在mvc中直接访问.html网页 [问题点数:20分]
最近用.net mvc做一个网站 我想在mvc中直接访问一个 .html页面 怎么设置一下啊 现在直接访问是404不让访问的 放到view文件夹外面...
- Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired,
Did not receive a reply. Possible causes include: the remote application did not send a reply, the m ...
- csu 1947 三分
题意: 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样. 今天小明早上6点40醒来后发现自己变成了一名高中生,这时马上就要做早操了,小明连忙爬起来 他看到操场密密麻麻的人,突然灵光一闪想到了 ...
- React简介
React JS:可以用react的语法,来编写网页的交互效果 React Native:可以让我们借用react的语法来编写原生的app应用 React VR:在react的基础上去开发VR,或者说 ...
- Codeforces Round #521 (Div. 3) D. Cutting Out 【二分+排序】
任意门:http://codeforces.com/contest/1077/problem/D D. Cutting Out time limit per test 3 seconds memory ...
- CodeForces-822D 【最小素因子应用】
任意门:https://vjudge.net/problem/CodeForces-822D D. My pretty girl Noora time limit per test 1.5 secon ...
- Spring data jpa命名规范
JPA命名规范 (sample与JPQL等效) Table 4. Supported keywords inside method names Keyword Sample JPQL snippet ...