求C语言大佬看看这个程序该怎么理解
发布网友
发布时间:2022-04-24 14:09
我来回答
共2个回答
热心网友
时间:2023-09-17 20:23
您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。给你详细列出来一遍,希望有所帮助
fun("abcd")
=>fun("bcd") 后 printf("%c", 'a')
=>fun("cd") 后 printf("%c", 'b') 后 printf("%c", 'a')
=>fun("d") 后 printf("%c", 'c') 后 printf("%c", 'b') 后 printf("%c", 'a')
=>fun("\0") 后 printf("%c", 'd') 后 printf("%c", 'c') 后 printf("%c", 'b') 后 printf("%c", 'a')
到这里不再递归,因为if(*a)不满足,所以下一步是:
=>printf("%c", 'd') 后 printf("%c", 'c') 后 printf("%c", 'b') 后 printf("%c", 'a')非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
热心网友
时间:2023-09-17 20:24
a的指针域指向b,b的指针域指向c,c的指针域赋值\0.h指向a,p指向a。p->data等价于a.data。p=p->next,把a的指针域赋值给p,p就指向了b。下一次循环p->data就等价于b.data,然后p=p->next,把b的指针域赋值给p,p就指向了c,输出c.data。然后把c的指针域赋值给p,p='\0'条件为假循环结束。