c语言中,如果是二维或多维数组用指针加减运算,那算哪个?如 int a[5][5],*pa; pa=a;pa+2;那结果是指向a[

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/20 21:39:54

c语言中,如果是二维或多维数组用指针加减运算,那算哪个?如 int a[5][5],*pa; pa=a;pa+2;那结果是指向a[

pa指向a,pa指向a开头的int型数,pa指向a[0][0],数组采用行优先存储,所以(pa+2)指向a[0][2].
注意区分下列:
int (*p)[5],数组指针,将二维数组看成数组的数组,p指向数组的某一行.
int *p,指向数组中的某个元素.
int**p,指向指针的指针.
int *p[5],指针数组.
当然楼上说的也有一定道理,但不同的编译器对于这个问题的处理是不一样,我用的gcc,直接打印警告,可以通过编译.如果想消除警告,建议采用强制类型转换.如:
pa=(int*)a,
或:pa=(int*)&a[0].

c语言中,如果是二维或多维数组用指针加减运算,那算哪个?如 int a[5][5],*pa; pa=a;pa+2;那结果是指向a[ C指针问题迷惑中,(*p)[4]和*p到底有什么区别?自学,谭浩强的C语言书,多维数 组指针变量,设有一个二维数组a[3][4],下面是书中原话:“(2)指向由m个元素组成的一维数组的指针变量.上例的指针 C指针问题迷惑中,(*p)[4]和*p到底有什么区别?自学,谭浩强的C语言书,多维数 组指针变量,设有一个二维数组a[3][4],下面是书中原话:“(2)指向由m个元素组成的一维数组的指针变量.上例的指针 用C语言在主函数中定义和初始化一个二维数组a[3][4]和一个指针数组,采用指针数组去访问数组元素a[2][4]; 用C语言在主函数中定义和初始化一个二维数组a[3][4]和一个指针数组,采用指针数组去访问数组元素a[2][4] C语言中指针引用二维数组元素问题假设a是一个3行4列的二维数组,请问为什么a[0]与*(a+0)是等价的,我的理解是二维数组名a既然是该数组首元素的地址,那么(a+0)也是一个地址,“*(a+0)”就 C语言的指针问题.*(p+i)是代表取值呢还是取地址?有一二维数组a[3][4]={{56,45,89,90},{13,34,56,45},{65,55,34,68}}如果我定义指针*P,指向首地址,*(p+i)就能取到数组中的值.但如果我定义指针(*p)[4],指 c语言中*s++=*p是什么意思*s和*p是指向数组的指针 一、 判断对错,正确的打“√”,错误的打“×”.(8分,每题1分)1. 指针变量和变量的指针是同一个名词不同说法.( )2. 在C语言中,二维数组元素是按行存放的.( )3. 数组不可以整体赋 C中 用指针表示一个二维数组中任意的元素 书上写是a【i】【j】=(*p+m*i+j) m是数组的第二维的维数 若有以下的定义和语句,则下面各个符号的正确含义是:int a[3][4] ,(*p)[4];p=a;p+1p+1是第几行 用C语言编程:3行4列的二维数组中输出每一行的最大值怎么编程呀 c语言中 用二维数组输出2的n次方,3的n次方,n从1到10 C语言如何在子函数中对主函数中的二维数组值进行修改?二维数组已经在主函数中用动态数组分配了空间. c语言中,指针于二维数组的问题假设我们引用二维数组a中的元素a[I][J],指针P指向a.书上说引用方法有四种 p[i]+[j] *(*(p+i)+j) (*(p+i))[j]) *(p[i]+j)为什么要弄得这么复杂啊,而且看不懂为什么可以这 多维数组的定义三、多维数组 多维数组的一般说明格式是:类型 数组名[第n维长度][第n-1维长度].[第1维长度]; 这种说明方式与BASIC、FORTRAN等语言中多维数组的说明不一样.例如:int m[3][2]; /*定义 (C语言用指针)从键盘输入一组数据存入数组a[3][3]中,求其主对角线下方元素之和. 帮忙写一个c语言程序,功能:求出二维数组周边元素之和,作为函数值返回.二维数组的值在主函数中赋予. c语言指针*(*(a+i)+j)什么意思,*(a+i)为什么是地址啊,a不应该已经是地址了么,a+i为什么不是地址a是一个二维数组