I can't quite comprehend the sequence when entering while loop.

Code:
struct node{
	int data;
	node *next;
}


....

node *curr, *prev;

while (curr && int x > curr->next){
	...
	...
}
of curr, int x, and curr->next how are they being compared??
Thanks