0002 (p+2) 3000 (*(p+2))1000 (*(p+0)+0) 1 (*(*(p+0)+0))1001 (*(p+0)+1) 3 (*(*(p+0)+1))1002 (*(p+0)+2) 5 (*(*(p+0)+2))1003 (*(p+0)+3) 7 (*(*(p+0)+3))2000 9 ... ...先说说i,j的值i=0...
答案:A 5.有以下程序 include struct tt (int x;struct tt*y;)*P;struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};main(){ int i;p=a;for(i=l;i<=2;i++){printf("%d,",p->x);P =p->y;} } 程序的运行结果是( )。A.20,30,B.30,17,C.15,30,D....
c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语...
这样://二维数组,先定义了一维:2 int[][] a = new int[2][];//再定义第二维:3 a[0] = new int[3]{1,2,3};a[1] = new int[3]{4,5,6};byte[,] blob =new byte[5,5];这个是声明一个交错数组,不是二维数组,和c/c++不同,byte[][] blob=new byte[5][5];这种...
答案是19 过程 x=0时,*(p+x)=*p=a[1]=4 所以y=1+4=5 x=1时,*(p+x)=*(p+1)=a[2]=6 所以y=5+6=11 x=2时,*(p+x)=*(p+2)=a[3]=8 所以y=11+8=19 输出
include <stdio.h> void main(){ int a[]={8,2,9,4,1},*p;p=a;(p+2)+=2;printf("%d %d",*p,*(p+2));} 输出的结果是8 11这两个数。首先你要知道指针的含义,和数组中数组名的作用。第一:你定义了一个指针p,并且把a的值赋予给p,这就相当于把一维数组a[5]的首地址赋予...
c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语...
我觉得是 5 3 首先,p是int型指针,指向x[1][1]的地址(int *p=&x[1][1])第一个是p[0],即p地址上的内容,就是x[1][1],所以是5 因为 i+=2 第二个是p[2],(也可以写成*(p+2))即p地址向后两个int型长度地址上的内容,是3。然后 i=4 跳出循环 5...
int a[5]={2,4,6,8,10},*p,**k;p=a;//p指向a数组,p保存了a数组的首地址。a[0]是数组的首元素,所以*p的值就是a[0]的值。k=&p;//k指针指向p,k保存了p的地址。(k可以成为指针的指针)printf("%d",*(p++));//表达式“*(p++)”整体的值相当于*p的值,就是a[0]的值...
(*p)[4]定义的是一个指向一维数组的指针,这是一个指针,p++相当于p的地址相加了1*4 举例说明:include <stdio.h> void main(){ int a[2][2]={{1,2},{8,9}};int *p[4],(*q)[2];q=a;p[0]=&a[0][0];p[1]=&a[0][1];p[2]=&a[1][0];p[3]=&a[1][1];f...