main( ){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2;//*p=&a[3]把a中的3索引号地址给指针p,3索引号处为4,因为索引是从0算起//*q=p-2把p的地址减2个int位,即1处的索引号地址给指针q,1处的索引号处的值为2printf("%d\n",*p+*q);//*p+*q的值,...
(p+2)就是先把P指向的地址后移两个单位,P初始化指向a数组首地址,后移两个单位后即 a[2]= 3 ;答案
题目有问题,p的值是多少?式子*p=a+4;若没有对p赋值,直接用*p是错误的,若题目是 int a[10]={1,2,3,4,5,6,7,8,9,10}, p=a+4;则 (++p)=6 分析:p=a+4,即相当于p=&a[4]++p 则p=&a[5],所以*(++p)=*(&a[5])=a[5]=6 ...
因为数组的下标是从0开始的,也就是说a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。所以B不对;p 和 a 都是指向数组a说地址的指针,它们指向的都是a[0];a[p-a],因为p=a=a数组的首地址,所以 p-a =0,a[p-a]= a[0]。不...
它的地址当然就是这个数组的首地址了,所以数组a的首地址和a[0]的地址相等。代码如下:include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};printf("数组a的首地址为\t%d\n",a);printf("a[0]的地址为\t%d\n",&a[0]);return 0;} 运行结果为:那...
int *p=&a[3];则p = a+3 b = p[5] = *(p+5) = *(a+8) = 9
p[5]的值就是*(a+3+5)的值,也就是a[8]的值,即9。选答案D。
void sort(int a[ ],int n){ int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10 },i; sort(&aa[2],5); for(i=0;i<10;i++)printf(“%d,”,aa[i]); ...
编译时 A &(a+1) 有问题, & 其实 是取地址操作 6 30 C:\Untitled1.c [Error] lvalue required as unary '&' operand B.a++ 也有问题 7 28 C:\Untitled1.c [Error] lvalue required as increment operand C.&p 这个是表示 指针变量 p 的地址 此题正确答案 是...