我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

lvdou





性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: YD一族
发贴: 1930
威望: 0
浮云: 1181
在线等级:
注册时间: 2006-04-01
最后登陆: 2008-06-21

5come5帮你背单词 [ photography /fə'togrəfi/ n. 摄影术 ]


来个题

好久没编程了,给大家出个题
  #include <stdio.h>
  void main(void)
  {
    char *message[] = {"Hello ", "World"};
    int i;

    for(i = 0; i < 2; i++)
      printf("%s", message);
    printf("\n");
  }

结果将是什么?为什么?
顶端 Posted: 2007-11-02 16:00 | [楼 主]
俺们都是兄弟



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 122
威望: 0
浮云: 1120
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-28

5come5帮你背单词 [ drill /dril/ v. & n. 钻,钻孔,操练 ]


Quote:
引用第16楼zhd32于2007-11-04 10:22发表的  :
是乱码哈
Copy code
printf("xxxxxx", YYY, ZZZ)

printf传参的时候是直接把 YYY和ZZZ的值压栈(不考虑优化)
.......

gege对printf的研究源于: ???

printf:
00401080  push        ebp
00401081  mov        ebp,esp
00401083  sub        esp,0Ch
00401086  push        ebx
00401087  push        esi
00401088  push        edi
00401089  lea        eax,[ebp+0Ch]
0040108C  mov        dword ptr [arglist],eax
0040108F  cmp        dword ptr [format],0
00401093  jne        printf+33h (004010b3)
00401095  push        offset string "format != NULL" (0042204c)
0040109A  push        0
0040109C  push        36h
0040109E  push        offset string "printf.c" (00422040)
004010A3  push        2
004010A5  call        _CrtDbgReport (00402680)
004010AA  add        esp,14h
004010AD  cmp        eax,1
004010B0  jne        printf+33h (004010b3)
004010B2  int        3
004010B3  xor        ecx,ecx
004010B5  test        ecx,ecx
004010B7  jne        printf+0Fh (0040108f)
004010B9  push        offset __iob+20h (00424a60)
004010BE  call        _stbuf (004012d0)
004010C3  add        esp,4
004010C6  mov        dword ptr [buffing],eax
004010C9  mov        edx,dword ptr [arglist]
004010CC  push        edx
004010CD  mov        eax,dword ptr [format]
004010D0  push        eax
004010D1  push        offset __iob+20h (00424a60)
004010D6  call        _output (004014f0)
004010DB  add        esp,0Ch
004010DE  mov        dword ptr [retval],eax
004010E1  push        offset __iob+20h (00424a60)
004010E6  mov        ecx,dword ptr [buffing]
004010E9  push        ecx
004010EA  call        _ftbuf (00401430)
004010EF  add        esp,8
004010F2  mov        eax,dword ptr [retval]
004010F5  pop        edi
004010F6  pop        esi
004010F7  pop        ebx
004010F8  mov        esp,ebp
004010FA  pop        ebp
004010FB  ret
顶端 Posted: 2007-11-06 22:16 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.010514(s) query 6, Time now is:11-23 03:17, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号