为您找到"
数组问题 int a[5],*p;p=a;p=&a[0];p=&a;都是什么含义
"相关结果约100,000,000个
【答案】:D 本题首先使指针指向数组a的首地址。选项A越界;选项B中,a并非指针变量;选项C使数组a的地址加1;选项D取数组元素a[0]的地址。
A无法引用a[3],所以选A——因为*p是第一个元素的值即a[0],所以*p+3是a[0]+3而不是a[3]。其余B:p[3]肯定是a[3]没错;C:*(p+3)把p换成a就是*(a+3),这和a[3]等价;D:&p[0]就是p,参照C...
{ scanf("%d",&a[i]);} for(i=0;i<5;i++){ printf("%4d",a[i]);} 方法二、指针下标法:int a[5], *p=NULL, i;printf("Input five numbers:");p=a;// p=a等价于p=&a[0] // for(i=0...
与p=&a[0]等价的语句p=a;(p+1)的值是2 (a+1)的值是2
a 代表数组名,是第一个元素的地址,它是const定值,不能加减操作,也不能自加操作。即a=a+1,a++都是错误的. 而 *(a+1)才能表示a[1]而p是指针,可以进行加减操作和自加操作,后面的两种可以。
int *p=&a //该句意思为: 定义一个指针p 该指针指向a的地址 即*p的内容 为5,如下:p=&a=5
int a[5],*p=a;前半句int a[5]是声明一个整型数组a,它有五个元素,分别是a[0]、a[1] 、a[2]、A[3]、a4[4],系统为她们分配五个连续的储存空间。后半句*p=a,定义了一个指向整形变量的指针p,并且把a[...
int a[5]={1,2,3}数组在内存中申请了五个连续的地址,假设是五个方框吧□□□,依次存放了1,2,3,0,0;p=a;定义了一个指针,指向a数组的首地址,也就是第一个方框,p+1,就是指向第二个方框。*(p+1)就...
lz可以试一下这个 main(){ int a[2];printf("%d",&a[1]-&a[0]);} &a[1]-&a[0],真正表示的,并非地址之差,而是数组下标之差 类似的 main(){ int a[2];printf("address of a[0]:%p\naddress of...