关于这段代码的疑惑,应该算是指针范畴吧
本帖最后由 pcfate 于 2013-11-20 16:19 编辑typedef struct _pQueueNode
{
TYPE val;
unsigned int priority;
struct _pQueueNode *next;
}pQueueNode;
pQueueNode *iterator=(*queue)->first;
// 这里初始化iterator是指向pQueueNode 类型的指针,也就是说是个地址变量
while(iterator->next!=NULL)
// 那这里iterator->next是不是应该改写成(*iterator)->next->priority???
{
if(priority<=iterator->next->priority)
{
aux->next=iterator->next;
iterator->next=aux;
(*queue)->size++;
return;
}
iterator=iterator->next;
}
求助啊!!!不要沉了。。。。 顶顶顶顶!! 楼主你说的"// 这里初始化iterator是指向pQueueNode 类型的指针,也就是说是个"地址变量"应该有问题吧!照我的说法,此处有两个错误:
1.iterator是指向pQueueNode 类型的"指针变量"而不是"指针"(也就是地址).
2."地址变量"说法有误吧,应该称之为"指向pQueueNode 类型的指针变量",刚好吻合"指针"就是"地址"的说法.
楼主说的:"// 那这里iterator->next是不是应该改写成(*iterator)->next->priority???"有误.
因为iteratot是个指针变量,所以iterator->next是没错的,(*iterator).next->priority没错,但
(*iterator)->next->priority 就错了,因为(*iterator)不再是指针(地址)了,所以就不能再用"->"符了.
总之,指针变量用"->" 此处略缺三万 发表于 2013-12-5 19:44 static/image/common/back.gif
楼主说的:"// 那这里iterator->next是不是应该改写成(*iterator)->next->priority???"有误.
因为iter ...
如果说 iterator->next 语法上没错,那在题目当中实际意义代表的是什么呢? 那份走人!小手一抖
页:
[1]