【发布时间】:2019-03-27 22:24:32
【问题描述】:
我想得到两个链表的交集,但是当我在 for 循环之外声明迭代器时它就不起作用了
// THIS WORKS FINE
for (SList iter1 = list1 ; !slist_empty(iter1); iter1 = iter1->next) {
for(SList iter2 = list2 ; !slist_empty(iter2); iter2 = iter2->next) {
if(comp(iter1->data, iter2->data)) {
result = slist_add(result, iter1->data);
}
}
}
// THIS DOESN't
SList iter1 = list1 ;
SList iter2 = list2 ;
for (; !slist_empty(iter1); iter1 = iter1->next) {
for(; !slist_empty(iter2); iter2 = iter2->next) {
if(comp(iter1->data, iter2->data)) {
result = slist_add(result, iter1->data);
}
}
}
我用 -std=c99 编译
【问题讨论】:
-
就是不行你能说的更清楚点吗?你不能编译?执行失败? SList 的定义是什么?标签是C,真的是C还是C++?
标签: c loops pointers linked-list variable-declaration