为您找到"

int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a...

"相关结果约100,000,000个

...a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2; printf("%d\n",*...

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的值,...

main() { int a[5] = {1,2,3,4,5}; int *ptr =

它的类型为数组类型,(int*)(&a+1)将其强制转换成整型指针赋值给*ptr,并指向了数组界外,最后用*(ptr-1)又指向了界内的最后一个元素5。假如:int a[8] = {1,2,3,4,5,6,7,8};int *ptr = (int*)(&a+1);printf("%d %d" , *(a+1), *(ptr-1) );结果就是2 8 这...

...a[2][3]={{0,1,2},{3,4,5}};,则a[1][1]的值是()。

二维数组,两行三列,一个花括号是一行,所以,列成矩阵的形式就是:0 1 2 3 4 5 因为数组下标是从0开始的,所以a[1][1]为4。a

...a[ ] ={1, 2, 3, 4, 5 , 6, 7 , 8 , 9 , 10}, *p=a ; 则值为 3...

首先需要明白的是,自增自减的操作符比解引用操作符优先级高。对于A,相当于p = p + 2, *p, p++,返回的是第二步的*p,是正确答案。对于B,为p = p + 2, ++p, *p, 返回的是第三步的结果,是4 C肯定是错误的。D,为++(*p),返回的是2,*p代表的是a[0],这个表达式相当于++a[0...

(5)main( ) { int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; for(k=0;k...

输出结果:3 5 7 int a[3][3]={1,2,3,4,5,6,7,8,9}; 声明了一个3*3的二维数组。循环一共执行三次。第一次:k = 0, 输出 a[0][2],也就是3;第二次:k = 1,输出 a[1][1],也就是5;第三次:k = 2,输出 a[2][0],也就是7.

...int a[3][3]={1,2,3,4,5,6,8,9,10},则printf("%d",*(*(a+1)+2...

答案A.数组定义是a[0]=1,a[1]=2,a[2]=3, ...,a[9]=10A. p += 2使p指向a[2], *(p++)表示先取*p的值, 然后p增加1(指向a[3]), 所以取得的值是a[2]=3B. p += 2使p指向a[2], *++p表示先p增加1(指向a[3]),然后取*p的值,所以是a[3]=4C. p += 3使p指向a...

int a[]={1,2,3,4,5};int *p;p=&a,这样的操作不行?

不可以啊!p=a就是p指向了数组a,也就是指向了a[0]。而&a是数组名a的地址,得用**p才能指向a。a

若已定义int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中 则对a数组元 ...

【答案】:D 解析:通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

若已定义int a[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;则对数组元素的不正确...

【答案】:D 解析:数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址。故可用的表示可能是a[i],p[i],*(p+i),同样&(a[i])表示地址,因此*(&a[i])等同于a[i]。本题答案为D。

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是...

因为数组的下标是从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]。不...
1 2 3 4 5 6 7 8 9

相关搜索