int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/28 01:21:28
int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p
*--p的值为什么是0
*--p的值为什么是0
什么也不是!就p=&a[2];这一句就不会过编译,因为a是二维数组,所以&a[2]是int (*)[3]型的,而p是int *型的,等号两边类型不配!如果是p=a[2];的话,那*--p就是0了.因为:编译器把int a[2][3]={0,1,2,3}解释为int a[2][3]={{0,1,2},{3,0,0}},a[2]已经越界指向最后一个0后面了,但它由p=a[2];传递给p后,经过了--p,这样p就指向最后一个0了,再由*取出值来自然是0.
再问: 确实 ,如果改下题目的话,应该怎么解释呢,谢谢了 是习题书上的题目
再答: 如果改成p=a[2];的话,那*--p就是0了。因为:编译器把int a[2][3]={0,1,2,3}解释为int a[2][3]={{0,1,2},{3,0,0}},a[2]已经越界指向最后一个0后面了,但它由p=a[2];传递给p后,经过了--p,这样p就指向最后一个0了,再由*取出值来自然是0。
再问: http://zhidao.baidu.com/question/528403696.html 能不能解释下这一题
再答: 后面少了个”)“。 *p1[3]是3元素int型指针数组,经for(i=0;i
再问: 确实 ,如果改下题目的话,应该怎么解释呢,谢谢了 是习题书上的题目
再答: 如果改成p=a[2];的话,那*--p就是0了。因为:编译器把int a[2][3]={0,1,2,3}解释为int a[2][3]={{0,1,2},{3,0,0}},a[2]已经越界指向最后一个0后面了,但它由p=a[2];传递给p后,经过了--p,这样p就指向最后一个0了,再由*取出值来自然是0。
再问: http://zhidao.baidu.com/question/528403696.html 能不能解释下这一题
再答: 后面少了个”)“。 *p1[3]是3元素int型指针数组,经for(i=0;i
int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p
{ int a[]={1,2,3,4,5,6}; int*p; p=a; printf("%d\n",*p); prin
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int **p; p=(int**)a;
#include "stdio.h" main() { int a []={1,2,3,4,5},*p;p=a;*(p+
int a[]={1,2,3,4,5,6,7,8,9},*p; for(p=a,p
若已定义:int a[]={1,2,3},*p=a;则执行*p++=5;(*p)++;后a[0],a[1],a[2]的值
int a[3][5]={{1,2},{6,4},{3,4,5}}; int (*p)[5] = a; 求*(*p+1)
C语言 int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a *p=a 是不是相当于 *(p=a)
int a[]={1,3,5,7}; int*p[3]=(a+2,a+1,a); int **q=p; printf("
#include main(){int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; print
设有定义int a[]={0,1,2,3,4},*p;,执行语句p=a+2;后,表达式*p的值为( ) A)1 B)2
设变量定义为“int a[2]={1,3},*p=&a[0]+1;”,则*p的值是____,若*p=&a[0]++,则*