%d\n%*%d\n什么意思

return a<b&&printf("%d\n%*%d\n", a, print(a+1,b), a)||a==b&&printf("%d\n",a)中的%d\n%*%d\n什么意思,谢谢

"%d\n%*%d\n"是函数printf输出格式控制串
%d表示输出一个整型数据
\n表示换行
%*表示跳过一个输出参量

"%d\n%*%d\n"表示对应地输出: a换行a换行
其中a会被置换为它所代表的值,%*所对应的print(a+1,b)会被跳过

建议参阅C语言程序设计相关资料
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-02
在格式串"%d\n%*%d\n"中,最前面的"%d\n"很好理解,不多说了。那么"%*%d"是什么意思呢?如果把*换成一个数字能使格式串有意义,那么*将被自动转成数字,这个数字的值来自相应的参数。例如:printf("%*d", 8, i)等同于printf("%8d", i)。但是在本例中,类似于"%8%d"这样的东西本身就不是一个有意义的格式串,所以其结果无规定,在不同的系统中结果可能不同。在我的系统中"%*%d"的结果是吃掉一个参数并输出%d本身(打印出一个百分号再加一个小写字母d)!本回答被提问者采纳
第2个回答  2015-11-21
在格式串"%d\n%*%d\n"中,最前面的"%d\n"很好理解,不多说了。那么"%*%d"是什么意思呢?如果把*换成一个数字能使格式串有意义,那么*将被自动转成数字,这个数字的值来自相应的参数。例如:printf("%*d", 8, i)等同于printf("%8d", i)。但是在本例中,类似于"%8%d"这样的东西本身就不是一个有意义的格式串,所以其结果无规定,在不同的系统中结果可能不同。在我的系统中"%*%d"的结果是吃掉一个参数并输出%d本身(打印出一个百分号再加一个小写字母d)!
第3个回答  2007-04-01
%*表示跳过输出参量