gpt4 book ai didi

c++ - 将指针变量设置为多个值

转载 作者:行者123 更新时间:2023-11-27 22:55:47 24 4
gpt4 key购买 nike

我正在编写使用自定义链表类的代码。列表类具有以下功能:

void linkedList::expire(Interval *interval, int64 currentDt)
{
node *t = head, *d;
while ( t != NULL )
{
if ( t->addedDt < currentDt - ( interval->time + (((long long int)interval->month)*30*24*3600*1000000) ) )
{
// this node is older than the expiration and must be deleted
d = t;
t = t->next;

if ( head == d )
head = t;

if ( current == d )
current = t;

if ( tail == d )
tail = NULL;

nodes--;
//printf("Expired %d: %s\n", d->key, d->value);
delete d;
}
else
{
t = t->next;
}
}
}

我不明白的是函数中的第一行代码:

node *t = head, *d;

这段代码如何编译?您如何将两个值分配给一个变量,或者这是一些简写的快捷方式? head 是 *node 类型的成员变量,但在其他任何地方都找不到 d。

最佳答案

这是两个定义,不是 comma operator 1。它们等同于

node* t = head;
node* d;

1 逗号运算符在 C++ 中的所有运算符中具有最低的优先级,因此调用它需要括号:

node* t = (head, *d);

如果 dnode** 类型,这将正常工作。

关于c++ - 将指针变量设置为多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com