若有以下定义:structnode{intdata;structnode*next;}structnode*p;已建立如下图所示的链表:┌──┬──┐┌──┬──┐┌──┬──┐p→│data│next┼→│data│next┼→...→│data│NULL│└──┴──┘└──┴──┘└──┴──┘指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是()。
①
while(p!=NULL){printf("%d,",p-p++;}
②
while(p){printf("%d,",p.data);p=p-}
③
for(;p!=NULL;p++)printf("%d,",p
④
-for(;p;p=p-next)printf("%d,",(*p).data);