C++ inta[5][6];int *p=&a[0][0] 则能够正确表示数组元素a[3][2]的...
发布网友
发布时间:2024-09-29 10:06
我来回答
共3个回答
热心网友
时间:2024-09-30 05:59
因为a[3][2]是表示数组的第21个元素 *(p+20)也是表示第21个元素
A,C,D的表示是错误的
热心网友
时间:2024-09-30 06:00
A p[3][2] B *(p+20) c *((*(p+3))+2) D (*(p+3))[2]
选B
热心网友
时间:2024-09-30 05:54
B *(p+20)
...*p=&a[0][0] 则能够正确表示数组元素a[3][2]的表达式是
因为a[3][2]是表示数组的第21个元素 *(p+20)也是表示第21个元素 A,C,D的表示是错误的
若有定义:int a[5],*p=a;,则对a数组元素地址的正确引用是___。
【答案】:D 本题首先使指针指向数组a的首地址。选项A越界;选项B中,a并非指针变量;选项C使数组a的地址加1;选项D取数组元素a[0]的地址。
C语言int a[5],*p; p=a;和p=&a;的对错问题~希望详细点,谢谢啦_百度知 ...
所以,p=a; 或p=&a[0]是正确的,表示指针p指向数组的首元素。
如果有int a[5][6],(*p)[3];p=a;存不存在p[4]呢?p[2],*(p+2),p[1...
对于int (*p)[3],p是一个指向数组的指针,因此p相当于二维数组的首地址。p或p[0]就是p指向的那个数组的地址,它的类型为int[3],其实是a[0]的地址【注意a[0]其实是有6个元素,但是编译器只是认为*p有三个元素】。p[2]就要在p[0]的基础上加上sizeof(int)*3*2=4*3*2=24(也就是...
C语言若定义int a[5],*p=a;则对a数组元素正确引用为哪个?为什么?_百度...
A:下标越界,数组大小为5时,下标范围为0-4 B:a+2是数组第3个元素的地址 C:越界,类似A D:正确
C语言 int 是a[5],*p;定义后,p=a[2]+2为什么不合法
对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示数组首元素的首地址,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一样。正如成都市政府与四川省政府的地址都在成都,但二者表示的含义不同。如下图所示,a...
C语言中 int *p=a[0] 这样表达对不对
给你分析下这个表达式的含义,这里a[0]应该表示一个地址,把这个地址赋给p,然后*p表示a[0]地址所指向的内容。我估计你的a是一个一维数组,你可能是想让指针p指向a[0]这个元素,如果是这样,则表达式应该改为int *p = &a[0]。但是如果a是一个二维数组,则这个表达式有意义,没有任何问题!
49. int a[4][5],(*p)[5]; p=a; 下列对数组a 数组元素正确的引用形式...
该题选C。(a怎么用,p就怎么用,用法相同)对于选项A,首先p是数组指针,其类型为int (*)[5],p=a使得p(即p+0)成为指向二维数组a第0行首地址的指针,那么p+1表示的是指向二维数组a第1行首地址的指针。对于选项B,首先p+3表示指向"二维数组a第3行首地址"的指针,那么*(p+3)也就是...
int**p=new int*; int a[3][3]; *p=a[0];//正确 p=&(a[0]);//不正确...
int a[3][3];//a的元素是int[3] ,这里int[3]是一种数据类型(有3个int元素的数组),也就是说a[0]的类型就是int[3],那么a[0]的地址&a[0]的类型自然就是int(*)[3]了 p的类型是int**,&a[0]的类型是int(*)[3]; 而不是int**;所以p=&a[0];自然就是不合法的了 p=a[1]...
关于C语言,*p=a[0]是什么意思呀?
对于二维数组a来说:int a[5][2]; a[0]是第0行起始地址指针 因此:int *p=a[0];相当于int *p; p=a[0];的合写,即p指向a数组第0行起始位置 相当于写:int *p=&a[0][0];