免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
打印 上一主题 下一主题

[C] 刚学完c。求教,自写一小程序不知道错哪里。一直遵循努力自己解决问题的原则。但。。 [复制链接]

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
11 [报告]
发表于 2013-12-17 16:40 |只看该作者
ntwarren 发表于 2013-12-17 15:36
回复 9# zhaohongjian000

#include


你是真不明白自己在干嘛吗?你把p强转了明白吗?

先吐槽点不相关的,p的类型是指向 元素个数为4的数组 的指针,你把a赋值给不觉得难受?

然后说正事儿,假设:
int a[8][4] = {4};
int (*p)[4];
p = a;

p的类型,前面已经说过了,所以p解引用之后是个数组,数组元素个数为4。所以,**p可以取出数组a中的
第一个元素,所以:
printf("%d\n", **p);
可以输出4。

p本身存储的是什么?是数组a的起始地址,所以你把p强转成int *之后也可以取出数组a中的第一个元素。但如果
你要这么用,为什么不一开始就声明p为一个int *?

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
12 [报告]
发表于 2013-12-17 16:43 |只看该作者
要是你还不明白,给a的元素依次赋值为1,2,3,4...,然后用*(*(p + i) + j)这种方法输出一下看看。

论坛徽章:
0
13 [报告]
发表于 2013-12-17 22:11 |只看该作者
恩。我再试试。刚学了定义动态内存,不太熟悉。我试试。谢了!回复 2# Kasiotao


   

论坛徽章:
0
14 [报告]
发表于 2013-12-17 22:17 |只看该作者
p是指向一维数组的指针变量呀,因此可以吧?回复 6# ntwarren


   

论坛徽章:
0
15 [报告]
发表于 2013-12-18 11:34 |只看该作者
1.问题score[i][4] student变量和i之间有什么关系。i的值是0。初始化是score[0][4] 赋值的student 是不会影响到score。
可以试一下:
问题解决方法如下:
printf("你输入的学生人数是:%d\n",student);
        printf("请输入学生成绩:\n");
        float score[student][4];
        p=score;

论坛徽章:
0
16 [报告]
发表于 2013-12-18 11:42 |只看该作者
回复 15# leolzbing521
第二个问题:计算平均值的时候出现*p,这样无法移动指针进行运算。
修改方法:
for(i=0;i<x;i++)
          {     
                sum=0;
                 for(j=0;j<y;j++)
                  {
                        sum=sum + (*(p+i)+j);
                  }
                aver=sum/y;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP