003 初始化空间: 字符和字符串

Posted huafan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了003 初始化空间: 字符和字符串相关的知识,希望对你有一定的参考价值。

 

/*
目录:
   一 字符和字符串初始化空间
*/

 

一 字符和字符串初始化

int main()

    char c = c;
    char str[] = "str123456";
    char *pStr = "pStr123456";
    
    printf("%c", c);
    printf("%s", pStr);
    printf("%s", str);

    return 0;

 

cpStr123456str123456

 

 

int main()

    char c = c;
00044DA8  mov         byte ptr [c],63h  
    char str[] = "str123456";    ; 数据复制: 静态存储区 - 栈区
00044DAC  mov         eax,dword ptr [string "str123456" (046CC0h)]  
00044DB1  mov         dword ptr [str],eax  
00044DB4  mov         ecx,dword ptr ds:[46CC4h]  
00044DBA  mov         dword ptr [ebp-1Ch],ecx  
00044DBD  mov         dx,word ptr ds:[46CC8h]  
00044DC4  mov         word ptr [ebp-18h],dx  
    char *pStr = "pStr123456";    ; 获取地址: 栈区指针 - 静态区字符串 
00044DC8  mov         dword ptr [pStr],offset string "pStr123456" (046CCCh)  
    
    printf("%c", c);
00044DCF  movsx       eax,byte ptr [c]  ; movsx : 符号扩展并传送指令
00044DD3  push        eax  
00044DD4  push        offset string "%c" (046DB8h)  
00044DD9  call        _printf (04131Bh)  
00044DDE  add         esp,8  
    printf("%s", pStr);
00044DE1  mov         eax,dword ptr [pStr]  
00044DE4  push        eax  
00044DE5  push        offset string "%s" (046B4Ch)  
00044DEA  call        _printf (04131Bh)  
00044DEF  add         esp,8  
    printf("%s", str);
00044DF2  lea         eax,[str]  
00044DF5  push        eax  
00044DF6  push        offset string "%s" (046B4Ch)  
00044DFB  call        _printf (04131Bh)  
00044E00  add         esp,8  

    return 0;

 

/*
局部变量: c - 栈空间
局部变量: str[] - 栈空间
字符串常量: "str123456" - 静态存储区
字符串常量: "pStr123456" - 静态存储区
*/

 

 

 

 

 

 

以上是关于003 初始化空间: 字符和字符串的主要内容,如果未能解决你的问题,请参考以下文章

串练习之Example003-删除 str 中值为 `ch` 的所有字符

第003讲:小插曲之变量和字符串

动态数组C风格字符串字符串字面值

python学习日记(基础数据类型02)-003

字符串输入输出函数

3 字符串向量和数组