pcfate 发表于 2013-11-20 16:18:33

关于这段代码的疑惑,应该算是指针范畴吧

本帖最后由 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;
                }





pcfate 发表于 2013-11-22 11:07:25

求助啊!!!不要沉了。。。。

pcfate 发表于 2013-12-4 12:01:58

顶顶顶顶!!

此处略缺三万 发表于 2013-12-5 19:39:38

楼主你说的"// 这里初始化iterator是指向pQueueNode 类型的指针,也就是说是个"地址变量"应该有问题吧!照我的说法,此处有两个错误:
1.iterator是指向pQueueNode 类型的"指针变量"而不是"指针"(也就是地址).
2."地址变量"说法有误吧,应该称之为"指向pQueueNode 类型的指针变量",刚好吻合"指针"就是"地址"的说法.

此处略缺三万 发表于 2013-12-5 19:44:34

楼主说的:"// 那这里iterator->next是不是应该改写成(*iterator)->next->priority???"有误.

因为iteratot是个指针变量,所以iterator->next是没错的,(*iterator).next->priority没错,但
(*iterator)->next->priority 就错了,因为(*iterator)不再是指针(地址)了,所以就不能再用"->"符了.
总之,指针变量用"->"

pcfate 发表于 2013-12-7 23:25:25

此处略缺三万 发表于 2013-12-5 19:44 static/image/common/back.gif
楼主说的:"// 那这里iterator->next是不是应该改写成(*iterator)->next->priority???"有误.

因为iter ...

如果说 iterator->next 语法上没错,那在题目当中实际意义代表的是什么呢?

wen312645721 发表于 2013-12-7 23:51:24

那份走人!小手一抖
页: [1]
查看完整版本: 关于这段代码的疑惑,应该算是指针范畴吧