| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 884 人关注过本帖
标题:新手遇一小程序不知所解
取消只看楼主 加入收藏
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
结帖率:37.5%
收藏
已结贴  问题点数:10 回复次数:1 
新手遇一小程序不知所解
今天在书上看到一个程序题,怎么解也不知道结果是多少,
还望哪位大侠帮助分析一下。
#include <stdio.h>
main()
{
  int m[12],k;
  int *p[3],sum=0;
for(k=0;k<12;k++)
  {
    m[k]=2*k;
    if(k<3)
    p[k]=m+2*k*k
  }
 for(k=0;k<3;k++)
  sum+=(*(p+k))[4-k];
printf("sum=%d\n",sum)
}
搜索更多相关主题的帖子: include 今天 多少 
2012-05-31 15:57
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
收藏
得分:0 
又看了一遍,好像做出来了。

m[12]={0,2,4,6,8,10,12,14,16,18,20,22};

if(k<3) p[k]=m+2*k*k;是不是就是
p[0]=m[0];p[1]=m[2];p[2]=m[8]

当(k=0)的时候sum+=(*(p+k))[4-k]是不是就是
sum+=p[0][4]。
由于p[0]的地址是m[0],p[0][4]就是8;
p[1]的首地址是m[2],p[1][3]的值是10;
p[2]的首地址是m[8],p[2][2]的值是20.

最后值是38
2012-06-01 09:37
快速回复:新手遇一小程序不知所解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018646 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved