|
| » 首页 » 电脑_数码 » 编程 » 求助,分析一段C程序 |
求助,分析一段C程序 |
|
void main() { int print(char*); char s[20]="how do you do"; print(s); } int print(char*string) { char*str=string; if(*str=='{ask}')return 0; while(*str)str++; --str; printf("%c",*str); *str='{ask}'; print(string); } 对那个函数理解不到,请高手分析下 |
![]() |
|
|
{ char*str=string; //字符指针指向字符串首地址 if(*str=='{answer}')return 0; //如果字符串指针指向首地址的值是字符串结束标志 返回0值 while(*str)str++;//如果指针指向的值不是结束标志 指针指向字符串的下一个元素 移动到最后它会指向结束标志 退出循环 --str; //让指针指向最后一个元素 而不是结束标志 printf("%c",*str); //打印字符 *str='{answer}';// 用结束符代替这个字符 print(string); //这是一个递归调用 又把首地址给了指针 进行循环 } 目的就是反向输出字符串 希望能让你明白 { char*str=string; //字符指针指向字符串首地址 if(*str=='{answer}')return 0; //如果字符串指针指向首地址的值是字符串结束标志 返回0值 while(*str)str++;//如果指针指向的值不是结束标志 指针指向字符串的下一个元素 移动到最后它会指向结束标志 退出循环 --str; //让指针指向最后一个元素 而不是结束标志 printf("%c",*str); //打印字符 *str='{answer}';// 用结束符代替这个字符 print(string); //这是一个递归调用 又把首地址给了指针 进行循环 } 目的就是反向输出字符串 希望能让你明白 |
| 《求助,分析一段C程序》答案收集时间:2008-06-14 14:48:32 |