三维数组+指针

作者&投稿:解沸 (若有异议请与网页底部的电邮联系)

数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; \/\/该语句是定义...

怎样定义一个指向一维数组的指针
定义一个指向一维数组元素类型的指针,并且赋值成指向一维数组首元素即可 比如:int a[10],*p; p=a;\/\/或者p=&a[0]; 这样就可以用p[0]访问a[0],p[9]访问a[9]\/\/在p不变的情况下 *p就是a[0]的内容,*(p+2)就是a[2]的内容 ...

数组指针是指向数组地址的指针,对吗?
要注意区别。p是一个指针变量,它指向包含4个int元素的一维数组,此时p的增量以它所指向的一维数组长度为单位。(p+i)是一维数组a[i][0]的地址;*(p+2)+3表示a[2][3]地址(第一行为0行,第一列为0列),*(*(p+2)+3)表示a[2][3]的值。

c++中我对多维数组还有指向指针的指针了解不够,感觉很难懂!
多维数组就是:一个数组,里面的元素还是数组。说白了,就是把一个矩阵(二维)拉成一大长溜(一维,内存是一维的)放到内存。你稍微画画就知道了。指针知道吧?那指针的指针就自然知道了。如 int a,*p,**pp;p=&a;pp=&p;那么p里面就是a的地址了,pp里就是p的地址了。哥们看书去吧。

如何使用指针指向数组里面的元素?
int a[3][4];int *p;p=&a[0][0];\/\/因为a[0]是第0行的数组名,所以p=&a[0][0]相当于p=a[0],因为a[i][j]前面共有i*4+j个元素 该二维数组的任意i行j列元素可表示为*(p+i*4+j)。2.使用行指针:定义一个行指针p,让它指向二维数组的第0行 int a[3][4];int (*p)...

如何在C语言中输入一维数组?
1、输入数组需要使用指针获取地址后,就能对得到的数组就行操作了。首先打开DEV C++软件,新建一个空白的C语言文件:2、输入程序的源码,先定义一个整型数组“a[5]”,采用scanf语句输入数组中的每个元素,这里使用指针来对输入的数字进行访问,要先给输入的每一个数字给予它的地址,便于访问,最后拿得到...

C语言指针数组指针怎样理解?
指针数组,指数组元素就是指针 数组指针,对于一维数组来说就是数组名 故对于一维数组来说,数组名是第一个元素的指针,而元素本身也是指针,故数组名是指向指针的指针。例如: int * p = &a; int ** q = &p;则p中储存的是整形变量a的地址,而指针p自身也是变量(指针变量通常占4个字节),...

数组指针的指向一维数组和二维数组的区别
一、指向一维数组的指针变量设一维数组为a[n]定义方法:*指针变量名即*P这个p一般指向的一维数组的首地址,即p=a,或者p=&a[0];p,a,&a[0]均指向同一单元,它们是数组a的首地址,也是0号元素a[0]的首地址。p+1,a+1,&a[1]均指向1号元素a[1]。类推可知a+i,a+i,&a[i]。例子:...

c语言小问题,多维数组的指针没看懂,为什么* a是地址,不是应该是值吗...
比如一个指向二维数组的指针,它就相当于一个一维数组,其中的每一个元素都指向了一个数组。所以*a的值只是一个指向的一维数组的指针,它的值当然是地址了。。。

c++中二维数组的指针如何定义?
二维数组的指针就是指针的指针,比如一个int型二维数组:int array[2][3];指向它的指针就可以定义成:int **p;如何使用这个指针呢,就和使用普通二维数组一样,比如第一行第二个元素:p[0][1]

阿苗13559321935问: 三维数组行指针怎样定义? -
景县妥布回答: #include <stdio.h> /* 可以,如下 */ int main() {int (*p)[2][2]; // p 定义为可以指向一个 2 * 2 的 二维数组int nA[2][2][2] = {{{1,2},{3,4}},{{5,6},{7,8}}}; // 三维数组p = nA; // p 能指向一个三维数组的首地址 printf("%d\n",(*(p+1))[1][1]); // 指针增量为 2 * 2 的 二维数组大小return 0; }

阿苗13559321935问: C语言指针定义三维不规则数组 -
景县妥布回答: #include<stdio.h> void check(int * * *ppp) { printf("三维数组Begin:{\n"); printf("{ %d,%d,\n", ppp[0][0][0], ppp[0][0][1]); printf("%d,%d,%d,%d,\n", ppp[0][1][0], ppp[0][1][1], ppp[0][1][2], ppp[0][1][3]); printf("%d,%d,%d,%d,%d },\n", ppp[0][2]...

阿苗13559321935问: 求助~~C语言的三维数组与指针!!! -
景县妥布回答: 从a[1][0][1]开始连续取4个元素值(按地址从低到高)赋给bak,就是a[1][0][1],a[1][0][2],a[1][0][3],a[1][0][4]这4个.

阿苗13559321935问: 如何把二维,三维数组的地址传递给指针啊? -
景县妥布回答: 二维数组int a[2][3]对应的指针:int (*p)[3],p++则p指向数组的第二行,*p是a[1][0]的地址.三维数组int a[2][3][4]对应的指针:int (*p)[3][4],p++则p指向数组的第二个二维数组.以此类推,高维数组都是低维数组组成的数组.

阿苗13559321935问: 用指向指针的指针,一个for循环输出一个三维数组 -
景县妥布回答: 用指针数组给你说明下吧.比如,有三维数组int a[3][2],那么它就像相当于一个一维的指针数组,此指针数组有三个元素,每个元素指向三维数组的一行,输出a[3][2]的值可以这样: for (int i=0; i<3; i++) {for (int j=0; j<2; j++){cout << *(*(a+i)+j) << " ";}cout << endl; } 指针数组的知识可以参见下 http://www.jizhuomi.com/software/80.html有更详细的解释,希望可以帮到你.

阿苗13559321935问: 三维数组是怎样表示的? -
景县妥布回答: var a:array[1..50,1..50,1..50] of integer;{定义} {表示出来就是如a[1,2,3]}

阿苗13559321935问: 实参是三维数组,形参是指针,应该怎么写. -
景县妥布回答: 要是只学习C语言,换个编译器吧. 这个错误应该只是个警告而已. 两种解决方法: 1.调用函数时强制类型转换:fun((int ***)a, (bool **)b); 2.定义函数直接形参是数组形式:void fun(int p[3][3][3], bool q[3][3]);这种方法需要指定第二以上维度大小

阿苗13559321935问: c++用指针怎么访问多维数组里面的内容? -
景县妥布回答: 举个例子#include <iostream>#include <stdlib.h> using namespace std; int main() { int a[3][3]={1,2,3,4,5,6,7,8,9}; int *p=&a[0][0]; cout<<*(p+3)<<endl; system("pause"); return 0; } 输出的结果是4,p开始指向的是第一个就是a[0][0],当给P加上3以后,p就指向了a[1][0],你可以将多维数组看成是一列,起始位置加上偏移量,就可以访问到你所需要访问的内容

阿苗13559321935问: C语言中如何用指针来取得多维数组地址的写法? -
景县妥布回答: 首先可以肯定的是无论几维的数组在内存中存储时都是连续的,但是数组每个元素在内存中的排列方式具体是按照什么的规则来排呢?这主要取决与编译器,一般有按行排,也有按列排,也有其他的一些排法.所以如果你想用指针表示一个数组中某一个元素的地址,关键还是要了解数组在内存中的具体排列方式.

阿苗13559321935问: C++ 指针数组 -
景县妥布回答: 1:int *p[2]好理解的,指针数组,p[0], p[1]都是一个指针2.int (*p)[2],定义指向二维数组的指针,此二维数组的第二维必须是2. 如当有int (*p)[2]时:int a[3][3]; p=a;是错的. int a[3][2]; p=a;是正确的. 同理 int (*p)[3][4];定义指向三维数组的指针...


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网