p指向第4个元素p[5]是从p后的5个 也就是第9个元素所以b=9
应该是 int *p=a[3] &是取地址 如果是地址的话 对应的应该是p,*P存放的是内容。1 2 3 4 5 6 7 8 9 10p当前指向的位置是 a[3]中的内容,对应的内容就是 4p 的初值就是4, *(p+5)= 9include <stdio.h>int main (int argc,char *argv[ ]){int a[10]={1,2,3,4,5...
int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;int i,t;for (i=0;i<5;i++) {t=*(p+i); *(p+i)=*(p+9-i); *(p+9-i)=t;};for (i=0;i<10;i++) printf("%d ",a[i]);return 0;} ...
①*p=&a[3],所以*p=4(这个不解释了)②A我们明确一个概念,就是a[10]这串位置是连续的。B假设i=*p(i为p所指的单元格的值)。*p=4,即i=&a[3]=4 Cp-2即p所在的地址往前推2单元格;即i所指的值往前推2单元格,即i=&a[3]往前推2单元格,即&a[1]=2 综上所述4+2=6 main...
(p+2)就是先把P指向的地址后移两个单位,P初始化指向a数组首地址,后移两个单位后即 a[2]= 3 ;答案
include<stdio.h>int main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a,*q=a+9,t; for(;p<q;p++,q--) {t=*p;*p=*q;*q=t;} for(p=a;p<a+10;p++) printf("%d ",*p); return 0;}
【答案】:B 本题考查指向数组的指针,本题中指针变量P指向数组a,那么*P的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即P+8指向的是数组元素值为9,所以数值为9的表达式是*(P+8)。
printf("%d\n",p);//输出的是第一个元素a[0]的地址,怎么可能是2呢?printf("%d\n",p+9);//输出的是第一个元素a[9]的地址,怎么可能是4呢?//元素地址由操作系统管理,这个值不确定。如果
include <stdio.h>int main(){int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = &a[3], b; b = p[5];printf("%d\n", b);} 因为*p=&a[3]; 表明将a[3]的地址赋值给p,此时p[0]=a[3],因此p[5]=p[0+5]=a[3+5]=a[8]。