下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
1个回答
关注
展开全部
在表达式中,已定义“inta[]={1,2,3,4}”和“*p=a;”。
A. *(a+1) 表示 int 数组 inta 的第二个元素,即值为 2,因此答案不是 A。
B. *(p+1) 表示 int 指针 p 所指向地址的下一个地址所存储的值,即值为 2,因此答案不是 B。
C. *(++a) 表示先将数组指针 a 加 1,然后取地址所存储的值,但 a 是数组名,不是指针,所以编译会报错,该表达式不合法。
D. *(++p) 表示先将指针 p 加 1,然后取地址所存储的值,指针 p 指向的是数组 inta 的第一个元素,因此执行完该表达式后,指针 p 指向数组 inta 的第二个元素,所以答案是 D。注意,该表达式执行完后,指针 p 的值也会改变,它现在指向的是数组 inta 的第二个元素。与此相反的是 *(p++),表示取指针 p 指向地址所存储的值,然后再将指针 p 加 1,指向数组 inta 的下一个元素,这种表达式在执行完后,指针 p 的值也会改变,它现在指向数组 inta 的第二个元素。
咨询记录 · 回答于2023-12-26
怎么算的
A. *(a+1) 表示 int 数组 inta 的第二个元素,即值为 2,因此答案不是 A。
B. *(p+1) 表示 int 指针 p 所指向地址的下一个地址所存储的值,即值为 2,因此答案不是 B。
C. *(++a) 表示先将数组指针 a 加 1,然后取地址所存储的值,但 a 是数组名,不是指针,所以编译会报错,该表达式不合法。
D. *(++p) 表示先将指针 p 加 1,然后取地址所存储的值,指针 p 指向的是数组 inta 的第一个元素,因此执行完该表达式后,指针 p 指向数组 inta 的第二个元素,所以答案是 D。注意,该表达式执行完后,指针 p 的值也会改变,它现在指向的是数组 inta 的第二个元素。与此相反的是 *(p++),表示取指针 p 指向地址所存储的值,然后再将指针 p 加 1,指向数组 inta 的下一个元素,这种表达式在执行完后,指针 p 的值也会改变,它现在指向数组 inta 的第二个元素。【摘要】
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
设有如下函数定义:intf(char*s){ char*p=s; while(*p!='\0') p++; return(p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为( )。printf("%d\n",f("goodbye!"));A.3 B.6 C.8 D.0这个呢
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
若有定义:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];则*(*(p+1)+2)的值为 ,*p[2]的值为 。若数组的首地址为0x2000,则p[1]指向的地址为 (假设每个int型数据占4个字节)。
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7
怎么算的
下面程序段的输出结果是( C )。inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A.3 B.4 C.6 D.7