移动后如何将指针设置回原始状态?

时间:2019-05-31 16:42:22

标签: c

我有这个代码

for(int i =0;i<file_num;i++) {
    int rc =in_file(file_name[i],argv,1,argc);
    if (rc ==0)
    *eligible_file++ =file_name[i];
}

因此,在每次迭代之后,eligible_file被1向上推。是否有任何快速的方法可以将指针(在for_loop之后)返回到其原始状态(在for_loop之前),而不必将循环放入函数内部?

1 个答案:

答案 0 :(得分:2)

<type> * tmp = eligible_file;
for(int i =0;i<file_num;i++){
    int rc =in_file(file_name[i],argv,1,argc);
    if (rc ==0)
    *eligible_file++ =file_name[i];
}
eligible_file = tmp;

但是我建议改为:

<type> * tmp = eligible_file;
for(int i = 0, i<file_num;i++){
    int rc =in_file(file_name[i],argv,1,argc);
    if (rc ==0)
    *tmp++ =file_name[i];
}