智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1899|回复: 9
打印 上一主题 下一主题

[咨询] ■■■■■问一个小小的C语言问题........■■■■■

[复制链接]

15

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1304
威望
747
贡献
313
兑换币
10
注册时间
2011-11-6
在线时间
122 小时
跳转到指定楼层
1#
发表于 2012-2-9 20:51:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚才看别人写的PID程序时,看到两行代码:
static PID sPID;
static *sptr = &sPID;
于是我产生了两个问题:
问题一:可不可以两行合并成一行,直接写成:static *sptr = &PID;  为什么???
问题二:既然&sPID是对sPID取址,那不应该是static sptr = &sPID吗?这样才*sptr = sPID啊..

我C语言学的不好,问的问题可能比较弱智,但还是希望懂的人能指点一下,感激不尽!

14

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2679
威望
1156
贡献
883
兑换币
53
注册时间
2011-4-5
在线时间
320 小时
2#
发表于 2012-2-9 21:38:38 | 只看该作者
你大可不必搞清楚这个问题,按你自己认为对的来就行了,要是出错了再找原因啊,要不会让你不高兴的:):)
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
613
威望
449
贡献
54
兑换币
0
注册时间
2011-1-21
在线时间
55 小时
3#
发表于 2012-2-9 21:43:51 | 只看该作者
问题一中的代码不行,因为没有sPID, 所以就没有&sPID
你看到的两行代码好像也不对,应该是
static struct PID sPID;
static struct PID *sptr = &sPID;
问题二可以这么看,static struct PID *可以看成是指针类型,所以sptr是个指针没错。
回复 支持 反对

使用道具 举报

15

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1304
威望
747
贡献
313
兑换币
10
注册时间
2011-11-6
在线时间
122 小时
4#
 楼主| 发表于 2012-2-9 21:45:16 | 只看该作者
adinike1 发表于 2012-2-9 21:38
你大可不必搞清楚这个问题,按你自己认为对的来就行了,要是出错了再找原因啊,要不会让你不高兴的

谢谢,但总想弄明白为什么~~{:soso_e100:}
回复 支持 反对

使用道具 举报

15

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1304
威望
747
贡献
313
兑换币
10
注册时间
2011-11-6
在线时间
122 小时
5#
 楼主| 发表于 2012-2-9 21:48:49 | 只看该作者
rguc 发表于 2012-2-9 21:43
问题一中的代码不行,因为没有sPID, 所以就没有&sPID
你看到的两行代码好像也不对,应该是
static struct ...

谢谢,但我感觉第一个是因为没有定义PID
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
613
威望
449
贡献
54
兑换币
0
注册时间
2011-1-21
在线时间
55 小时
6#
发表于 2012-2-9 21:53:59 | 只看该作者
确实没定义struct PID
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
613
威望
449
贡献
54
兑换币
0
注册时间
2011-1-21
在线时间
55 小时
7#
发表于 2012-2-9 21:55:07 | 只看该作者
人车合一 发表于 2012-2-9 21:48
谢谢,但我感觉第一个是因为没有定义PID

忘了点回复,抱歉...
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
397
威望
251
贡献
90
兑换币
52
注册时间
2012-2-5
在线时间
28 小时
毕业学校
浮山中学
8#
发表于 2012-2-9 23:00:41 | 只看该作者
问题一不知道,
问题二,这是在定义的时候要写成static *sptr = &sPID; 这里的*是说明变量sptr是地址
在接下来使用时sptr = &sPID,*sptr = sPID。这里的*是取地址中的数值
回复 支持 反对

使用道具 举报

15

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1304
威望
747
贡献
313
兑换币
10
注册时间
2011-11-6
在线时间
122 小时
9#
 楼主| 发表于 2012-2-10 09:44:05 | 只看该作者
PQ… 发表于 2012-2-9 23:00
问题一不知道,
问题二,这是在定义的时候要写成static *sptr = &sPID; 这里的*是说明变量sptr是地址
在接 ...

谢谢!
回复 支持 反对

使用道具 举报

5

主题

246

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1511

热心会员奖章推广达人奖章

威望
927
贡献
298
兑换币
14
注册时间
2010-9-18
在线时间
143 小时
10#
发表于 2012-2-26 18:23:29 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 16:56 , Processed in 0.048624 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表