求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'条件为假循环结束。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com