爱问知识人 爱问教育 医院库

c语言有题不会

首页

c语言有题不会

以下程序的输出结果是( 60 )
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}:
int (*p)[4]=a,i,j,k=0:
for(i=0:i<3:i++)
  for(j=0:j<2:j++)
    k+=*(*(p+i)+j):
printf("%d\n",k):
}大哥大姐帮帮忙!

提交回答
好评回答
  • 2018-04-07 09:16:08
    a的定义写的明白一点{{1,3,5,7},{9,11,13,15},{17,19,21,23}}
    姑且认为有3个包含4个元素的数组,且地址是连续的
    *p[4]初始指向a的首地址
    关键的地方:*(*(p+i)+j)
    *(p+i)在i为0、1、2时分别指向3个数组的首地址
    那么:*(*(p+i)+j)在j为0、1时分别指向某数组的第0、1个元素
    这样就是1+3+9+11+17+19=60
    

    世***

    2018-04-07 09:16:08

其他答案

    2018-04-07 11:16:08
  • 首先理解矩阵,a[3][4]的矩阵如下:
     1  3  5  7
     9 11 13 15
    17 19 21 23
    然后理解循环和指针的概念,
    i循环控制行,j循化控制列,循环嵌套取三行中每行前两个数相加。
    即:1+3+9+11+17+19=60
    因此输出结果为 60
    * 符号为指针操作的取值运算

    信***

    2018-04-07 11:16:08

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):