| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:int a[3][4],*p=a;为什么会出错?(结贴)
只看楼主 加入收藏
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
结帖率:100%
收藏
 问题点数:0 回复次数:8 
int a[3][4],*p=a;为什么会出错?(结贴)
谢谢大家帮忙 终于改好了 懂了这个程序 指针应该算是明白了
main()
{
 int a[3][4],k,*p=*a;
 float average(int *n);
 void chengji(int,int *n);
 void shuru(int a[][4]);
  shuru(a);
  printf("%.2f\n",average(p));
  scanf("%d",&k);
  chengji(k,p);
}
void shuru(int b[][4])
{
 int m,n;
  for(m=0;m<3;m++)
   for(n=0;n<4;n++)
    scanf("%d",*(b+m)+n);
}
float average(int *n)
{
 int m;
 float aver=0;
  for(m=0;m<12;m++)
   aver+=*n++;
  aver/=12;
  return aver;
}
void chengji(int g,int *n)
{
 printf("%4d%4d%4d%4d\n",*(n+g*4),*(n+1+g*4),*(n+2+g*4),*(n+3+g*4));
}

[ 本帖最后由 njzhangyuhao 于 2011-2-26 14:36 编辑 ]
搜索更多相关主题的帖子: void average return 
2011-02-26 12:31
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
收藏
得分:0 
输入3个学生成绩 每人4门功课 算平均值 查询某名学生成绩 我指针概念混乱 求指点
2011-02-26 12:54
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
int (*p)[4];
p=a;
楼主,你好像刚刚问过这个问题了
2011-02-26 13:02
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
收藏
得分:0 
a不是相当于数组a的首地址么 相当于a[0][0]的地址 为什么必须用(*p)[4]呢
2011-02-26 13:06
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
那你仔细想想a+1是什么地址
2011-02-26 13:11
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
收藏
得分:0 
a+1是a[1] 第一行首地址 对么? 为什么a不是地址呢?
2011-02-26 13:17
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
a[i][j]
a+i是指向行的指针,而*(a+i)+j是指向列的指针,那么**((a+i)+j)就是内容了

[ 本帖最后由 baobaoisme 于 2011-2-26 13:23 编辑 ]
2011-02-26 13:21
chan92
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:17
专家分:4
注 册:2011-2-23
收藏
得分:0 
int *p=&a
2011-02-26 13:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
对于二维数组来说   数组名字是一个二级指针
a不是a[0][0]的地址
而是a[0]的地址  ,那么a[0]才是a[0][0]的地址   所以a是指向指针的指针  

                                         
===========深入<----------------->浅出============
2011-02-26 14:20
快速回复:int a[3][4],*p=a;为什么会出错?(结贴)
数据加载中...
 
   



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

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