你能马上告诉我它的输出结果吗?昨天同学问我这个问题的时候,我果断懵了,毫无把握地说了一句43,当然,肯定是错的。
为了搞清楚这个问题,我先翻开了课本,很遗憾,谭浩强老师没有告诉我。那就google之吧。原来,printf()也是有返回值的,它的返回值就是输出的字符数。因此,形如:
上面这段代码执行后就会输出12了。而最开始那段代码输出结果就是4321了。
而且,这玩意还真有应用的价值。比方说以后要统计字符串含有多少字符的时候,甚至可以不用strlen了,看例子:
1 2 3 4 5 6 7 8 9 | int main() { char i[]="i love you"; int j; j=printf("%s",i); printf("%d",j); getch(); return 0; } |
这样就可以取得字符串的长度了。
甚至,你可以用它得到一个数字是几位数,这应该是我见过的最简单得到一个数的位数的方法了。
1 2 3 4 5 6 7 8 9 10 | int main() { int a; scanf("%d",&a); int j; j=printf("%d",a); printf("%d",j); getch(); return 0; } |
对了,你知道最上面的代码源自哪里吗?告诉你吧,它居然是网站注册的验证码!不相信?自己看去:http://www.ppurl.com/register/