在二维数组int[][]中,int *[]和int (*)[]还有int **分别是什么指针

用法还有它们分别指向什么东西?请大神详解,最好有例子。
同样的,在字符串中的用法呢?
我知道int *[]是指针数组,里面的元素是指向整形对象的指针,而int (*)[]是数组指针,每一个指针指向一个int数组,而int **是指向整形对象指针的指针。但是他们的用法有些糊涂,比如在形参中,或者在函数表达式中的用法与不同

int *[] 指存储指针的数组
int (*)[] 指存储二位指针某维中的某个的数据 例如(*a)[4]是第0维的想序号4的数据4
int ** 类同与上面那条,例如**a是第0维的想序号0的数据0 如果是*((*(a + 2)) + 3)是第2维的序号3的数据13
可以用下面函数简单的参考下
int main(){
int a[5][5] = {{0,1,2,3,4},
{5,6,7,8,9},
{10,11,12,13,14},
{15,16,17,18,19},
{20,21,22,23,24}};
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
printf("%d\n", *(*(a+i)+j));
}
}
return 0;
}追问

还是不懂int (*a)[]的意思

温馨提示:内容为网友见解,仅供参考
无其他回答

在二维数组int[][]中,int *[]和int (*)[]还有int **分别是什么指针
int *[] 指存储指针的数组 int (*)[] 指存储二位指针某维中的某个的数据 例如(*a)[4]是第0维的想序号4的数据4 int ** 类同与上面那条,例如**a是第0维的想序号0的数据0 如果是*((*(a + 2)) + 3)是第2维的序号3的数据13 可以用下面函数简单的参考下 int main(){ in...

定义一个二维数组,int[ ][ ] 和int [ , ] 有什么区别?
int[,]和int[][]都是c#支持的语法,前者称为多维数组,后者称为交错数组。楼上两位可能当成c++了,因为问题的分类在C++中。int[,](事实上还可以int[,,])指的是类似一个矩阵的数据结构,比如你用的int[,] a =new int[x,y]; x行,每列都必须是y个元素。int[][]允许每行有不同数量的...

int *[] 和int (*)[]的区别?
前者int *[],是一个指针数组,加入中括号里面是5,那么就是说你所定义的这个数组里面的5个变量都是指针。就好比你定义int a[5]类似,这5个元素都是可以存放int值的变量。int *p[5]就是定义了5个元素,每一个元素都是指针,可以指向变量。也可以写作int (*p)[5];后者int (*)[],是一个行...

在C#中,int[,]和int[][]是同一种类型吗,都是表示二维数组吗,请看补充...
不一样,int[,]是规则的二维数组,但每行的列数是固定的,呈现一个矩形。int[][]是不规则数组,每行的列数是可变的。例如可以是这样:1 1 2 1 2 3 i

c#中的数组 int[,]和int[][] 有什么区别啊
前者是多维(一个逗号的表示二维)数组,后者被称之为数组中的数组。它们最重要的差别是前者的每个元素维度必须相同(至少从内存占有上来看)。譬如,int[,] a ={{1,2,3},{1,2,3} } 表示两行三列的矩形矩阵。int[][] 就可以表示成“不规则矩阵”了。每个元素的维度可以不用相同的(当然...

C语言中二维数组行指针是什么
int (*p)[3]; 它表示,数组 *p 具有三个int类型元素,分别为 (*p)[0] , (*p)[1] , (*p)[2] ,即 p指向的是具有三个int类型的一维数组,也就是说,p为行指针。此时,以下运算 p=array 是正确的。第四,二维数组作为函数参数。二维数组作为函数参数一般有两种方式:(1) void func(int...

二维数组与指针、指针数组、数组指针的用法
int* p=a[0];\/\/此时P是指向一维数组的指针。P++后,p指向 a[0][1]。如果定义int (*p1)[n];p1=a;p1++后,p1指向a[1][0];则p+j将指向a[0]数组中的元素a[0][j]。 由于a[0]、a[1]┅a[M-1]等各个行数组依次连续存储,则对于a数组中的任一元素a[i][j],指针的一般形式...

C语言二维数组指针变量是什么,int (*p)[2]什么意思
int (*p)[2]: 数组指针.首先它是一个指针,指向一个数组,在32为系统下永远占4个字节,它是"指向数组的指针"的简称; xiwending2008 | 发布于2011-10-12 举报| 评论 1 1 (1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。 可以这样来用: #include <...

在二维数组中,行指针是指向一维数组的指针变量.
假设int a[3]这样一个数组,a是普通常量指针,即一维数组指针,其地址类型是 int * 。因此要定义一个指向这个数组的指针p,则其格式为 : int *p;然后就可以赋值了:p=a;(类型一致)。再假设int b[3][4]这样一个二维数组,b是行地址常量指针,其地址类型是 int (*)[4] 。因此要定义一...

二维数组如何用指针表示
sizeof(int)*n);\/\/每行分配n个int型元素。 return r;\/\/返回地址值。}二、通过数组指针指向已有二维数组。对于已经定义好的M行N列数组,可以使用指向N个元素的数组指针,指向该数组并访问。参考代码:int a[10][5];int (*p)[5];\/\/每行5个元素的数组指针。p=a;\/\/把p指向a。

相似回答