C语言编程题求助
这个函数功能是将一个整数存放到数组中,存放时按逆时针存放。但是这个递归里面的(a++,a--)参数有点看不懂#include "stdio.h"
void convert (char *a,int n)
{
int i;
if((i=n/10) !=0)
convert((a++,a--),i);//
*a= n%10+'0';//
}
char str[10]=" ";
main()
{
int number=12345;
convert(str,number); //
puts(str);
}
这是C语言自增(++)和自减(--),自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。 感觉是装X的写法,这种括号+逗号的就是前面都运行一遍,然后返回最后一项的结果,比如
b = (a++,a--);
应该等价于
a++;
b = a;
a--;
就是返回a+1然后把a还原。可能是指针操作的习惯写法?但是没见过的话确实可读性要低一些 变量作用域的问题? 但是习惯写法好像也不像,你把(a++,a--)直接换成a+1,看看效果有区别没 chill66 发表于 2021-11-18 16:12
这是C语言自增(++)和自减(--),自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。
这个我懂,但是不知道这函数参数里面这样写是什么意思,有什么意图,有什么作用 yacc 发表于 2021-11-18 16:20
但是习惯写法好像也不像,你把(a++,a--)直接换成a+1,看看效果有区别没
结果和没改的结果一样,果然就是装逼写法? 先有我后有天 发表于 2021-11-18 16:22
结果一样,果然就是装逼写法?
不明觉厉,不知道有没有其他的考虑 yacc 发表于 2021-11-18 16:26
不明觉厉,不知道有没有其他的考虑
结果一样就行,也是第一次见这种写法 昨天刚学习前置递增和后置递增,后置递增先运算表达式,再自加1,前置 递增刚好相反。
页:
[1]
2