null

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

网址:http://www.ppurl.com/login/

遇到的一题:

#include<stdio.h>

int main()
{
    int i=43;
    printf("%d\n",printf("%d",printf("%d",i)));
    return 0;
}

结果:4321

分析:

printf Return ValueOn success, the total number of characters written is returned.On failure, a negative number is returned.

printf就是返回输出的字符个数,任何反义字符也占一个,输出的数字什么的都看成字符串就好,比如int i=printf(“%d”,4321);i的值就等于4.

针对此题的结果来分析:printf执行顺序从最里面开始printf("%d\n",printf("%d",printf("%d",i)));

红色第一个执行,黄色第二个执行,蓝色第三个执行。

第一个执行结果为43,表示输出的 i 值。

第二个执行结果为2,表示第一个printf输出的字符数为2,即4和3个占一个字符

第三个执行结果为1,表示第二个printf输出的字符数为1个,即2占一个字符

posted on 2011-06-12 13:21  Null_x1  阅读(7736)  评论(3编辑  收藏  举报