有没有人能给我解释一下For Loop?
struct {
int lock; // not used in Lab
struct proc proc[NPROC];
} ptable;
void scheduler(void){
struct proc *p;
acquire(&ptable.lock);
for(p = ptable.proc; p < &ptable.proc[NPROC]; p++){
if(p == curr_proc || p->state != RUNNABLE)
continue;
// Switch to chosen process.
curr_proc = p;
p->state = RUNNING;
break;
}
release(&ptable.lock);
}
我主要询问的是for循环的情况
for(p = ptable.proc; p < &ptable.proc[NPROC]; p++){
将指针p赋给pable.proc有什么作用?以及如何访问 struct 过程的成员/变量?