| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 862 人关注过本帖
标题:求助谭的C,指针数组例题出错
只看楼主 加入收藏
blueegg321
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2009-7-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
求助谭的C,指针数组例题出错
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
  int i;
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
代码如上,在编译时总报初始化错误,错在哪里?
搜索更多相关主题的帖子: 指针数组 
2009-08-12 11:21
xiaopangwa
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2009-8-7
收藏
得分:0 
头文件有#include <stdio.h>吗?
2009-08-12 12:28
blueegg321
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2009-7-23
收藏
得分:0 
试过了,不是头文件问题
2009-08-12 12:38
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
不知你用的什莫编译器?VC6编译通过。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-08-12 13:11
blueegg321
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2009-7-23
收藏
得分:0 
我用的是TC 2.0
2009-08-12 13:33
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};      /*这里定义有问题,int (*pa)[3]才对。初始化也不对*/
int *p=a[0];         
  int i;
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}

改成这样就好了。
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int (*pa)[3]=a;
int *p=a[0];
int i;
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
  for(i=0;i<3;i++)
      printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}

努力—前进—变老—退休—入土
2009-08-12 13:43
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
以下是引用UserYuH在2009-8-12 13:43的发言:main(){ int a[3][3]={1,2,3,4,5,6,7,8,9}; int *pa[3]={a[0],a[1],a[2]};      /*这里定义有问题,int (*pa)[3]才对。初始化也不对*/int *p=a[0];           int i;   for(i=0;i<3;i++)       printf("%d,%d, ...
这位大哥,你不知道有两种写法.一种是*a[3],还有一种是(*a)[3]么?这两种是有区别的......他这里没有问题..
2009-08-12 13:56
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:10 
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
这块放到main()外层就可以运行,放在里面就要像我上面那样改了。

努力—前进—变老—退休—入土
2009-08-12 14:03
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
回复 8楼 UserYuH

你用编译器试过么?

我加了个头文件#include <stdio.h>

然后改成int main后面再加个return 0

GCC编译通过,运行正常...
2009-08-12 14:11
blueegg321
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2009-7-23
收藏
得分:0 
谢啦,大虾们,我再仔细看看指针数组的相关概念
2009-08-12 14:16
快速回复:求助谭的C,指针数组例题出错
数据加载中...
 
   



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

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