| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1398 人关注过本帖
标题:关于const char * a ,表示*a的值不能改变。我不理解的是*a>>1;是在哪里改变 ...
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看看匯編麽,以下是那一行代碼的匯編結果:

程序代码:
; 8    :     printf("a>>1 to is = %x\n",(*a) >> 1);

    mov    eax, DWORD PTR _a$[ebp]
    movsx    ecx, BYTE PTR [eax]
    sar    ecx, 1
    mov    esi, esp
    push    ecx
    push    OFFSET ??_C@_0BB@EPOBIAHI@a?$DO?$DO1?5to?5is?5?$DN?5?$CFx?6?$AA@
    call    DWORD PTR __imp__printf
    add    esp, 8
    cmp    esi, esp
    call    __RTC_CheckEsp


授人以渔,不授人以鱼。
2014-01-03 13:46
夏天天蓝
Rank: 2
等 级:论坛游民
帖 子:39
专家分:86
注 册:2013-12-30
收藏
得分:0 
汇编停留在大学应付考试水平,所以版主的代码啃不动
2014-01-03 14:27
lleon
Rank: 2
等 级:论坛游民
帖 子:25
专家分:43
注 册:2013-10-28
收藏
得分:0 
临时变量通常丢在寄存器里
2014-01-03 17:54
快速回复:关于const char * a ,表示*a的值不能改变。我不理解的是*a>>1;是在哪 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022716 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved