智能车制作

标题: ■■■■■问一个小小的C语言问题........■■■■■ [打印本页]

作者: 人车合一    时间: 2012-2-9 20:51
标题: ■■■■■问一个小小的C语言问题........■■■■■
刚才看别人写的PID程序时,看到两行代码:
static PID sPID;
static *sptr = &sPID;
于是我产生了两个问题:
问题一:可不可以两行合并成一行,直接写成:static *sptr = &PID;  为什么???
问题二:既然&sPID是对sPID取址,那不应该是static sptr = &sPID吗?这样才*sptr = sPID啊..

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

作者: adinike1    时间: 2012-2-9 21:38
你大可不必搞清楚这个问题,按你自己认为对的来就行了,要是出错了再找原因啊,要不会让你不高兴的:):)
作者: rguc    时间: 2012-2-9 21:43
问题一中的代码不行,因为没有sPID, 所以就没有&sPID
你看到的两行代码好像也不对,应该是
static struct PID sPID;
static struct PID *sptr = &sPID;
问题二可以这么看,static struct PID *可以看成是指针类型,所以sptr是个指针没错。

作者: 人车合一    时间: 2012-2-9 21:45
adinike1 发表于 2012-2-9 21:38
你大可不必搞清楚这个问题,按你自己认为对的来就行了,要是出错了再找原因啊,要不会让你不高兴的

谢谢,但总想弄明白为什么~~{:soso_e100:}
作者: 人车合一    时间: 2012-2-9 21:48
rguc 发表于 2012-2-9 21:43
问题一中的代码不行,因为没有sPID, 所以就没有&sPID
你看到的两行代码好像也不对,应该是
static struct ...

谢谢,但我感觉第一个是因为没有定义PID{:soso_e100:}
作者: rguc    时间: 2012-2-9 21:53
确实没定义struct PID
作者: rguc    时间: 2012-2-9 21:55
人车合一 发表于 2012-2-9 21:48
谢谢,但我感觉第一个是因为没有定义PID

忘了点回复,抱歉...

作者: PQ…    时间: 2012-2-9 23:00
问题一不知道,
问题二,这是在定义的时候要写成static *sptr = &sPID; 这里的*是说明变量sptr是地址
在接下来使用时sptr = &sPID,*sptr = sPID。这里的*是取地址中的数值
作者: 人车合一    时间: 2012-2-10 09:44
PQ… 发表于 2012-2-9 23:00
问题一不知道,
问题二,这是在定义的时候要写成static *sptr = &sPID; 这里的*是说明变量sptr是地址
在接 ...

谢谢!{:soso_e100:}
作者: jyh728    时间: 2012-2-26 18:23





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2