| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1152 人关注过本帖
标题:请教关于结构体问题
只看楼主 加入收藏
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
结帖率:56.76%
收藏
 问题点数:0 回复次数:14 
请教关于结构体问题

struct HAR

{int x,t; HAR *p;}[2];

main( )

{h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1];h[1].p=h;

printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);

各位请帮忙解释h[0].p=&h[1];h[1].p=h;与printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);两句,顺便写出运行结果!谢了,第一个应该是3,第二个如何推算?

搜索更多相关主题的帖子: 结构体 
2004-09-07 18:16
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

struct HAR

{int x,t; HAR *p;}[2];

这定义的是什么?


2004-09-07 18:20
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 

我觉得你的代码不能编译吧,

(有一些错误,检察一下)

第二个应该是2。h[1].p=h是把h数组的头指针给h[1].p(头指针指向h[0])


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2004-09-07 18:22
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

struct HAR

{int x,t; HAR *p;}h[2]; 掉了个H,不好意思,刚才学懵了!

main( )

{h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1];h[1].p=h;

printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);

各位请帮忙解释h[0].p=&h[1];h[1].p=h;与printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);两句,顺便写出运行结果!谢了,第一个应该是3,第二个如何推算?


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-09-07 18:23
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 

帮你修改下结构体定义吧: 我想是这样的“

typedef struct HAR

{int x,y;struct HAR *p;}HAR;

HAR h[2];

这样应该能通过了。

[此贴子已经被作者于2004-09-08 17:55:20编辑过]


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2004-09-07 18:24
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

乌鸦丘比特 能不能把typedef的用法仔细的说一遍,谢谢!!!

还有第二个,用指针呀!!!!关于链表就是用这个的了!!!


差点把你忘了...
2004-09-07 19:54
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:0 

h[0].y=2;结构HAR里面没有y吧,只有t啊,所以编译会出错的啊. typedef struct HAR {int x,y;struct HAR *p;}h[2]; 这个定义不怎么适合,typedef 是类型定义,定义完之后h[2]就是一个类型了,就可以象int一样使用了 此处它的类型是struct HAR. 所以我觉得应该这样定义: typedef struct _HAR { int x,y; struct _HAR *p; }HAR;

HAR h[2]; 然后呢:

main( )

{h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1];h[1].p=h;

printf("%d%d\n",(h[0].p)->x,(h[1].p)->y); }

运行结果为3 2 h[1].p=h; // h是数组名,,即为数组的首地址,即为 &h[0]; 所以h[1].p指向h[0]

[此贴子已经被作者于2004-09-07 20:16:18编辑过]


如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2004-09-07 20:09
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用天使预备役在2004-09-07 19:54:11的发言:

乌鸦丘比特 能不能把typedef的用法仔细的说一遍,谢谢!!!

还有第二个,用指针呀!!!!关于链表就是用这个的了!!!

main() { typedef long knocker;

knocker a=123456; long b=123456;

printf("%ld %ld",a,b); }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-09-07 21:15
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

knocker你一边歇着去,这个我当然知道,我是说来点有难度的!!!

会么,不会下面的帖子不用你跟了!!!


差点把你忘了...
2004-09-08 09:01
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
嘿嘿,如果你能找出typedef还有另外的什么功能,嘿嘿,嘿嘿,我请你吃海鲜!

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-09-08 09:17
快速回复:请教关于结构体问题
数据加载中...
 
   



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

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