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" - 静态存储区
*/
 

原文地址:https://www.cnblogs.com/huafan/p/11480120.html

时间: 2024-11-12 09:36:00

003 初始化空间: 字符和字符串的相关文章

指针和数组,字符和字符串等易混淆概念举例

指针和数组相关概念 文档不知道从哪搞的,基础知识,觉得有用的可以看看,留存. 有侵权的内容,请及时告知,谢谢! 指针和数组相关概念 ************************************************* 字符与字符串的区别:单引号字符其实就是代表ASCII码的整数,而字符串代表了无名数组起始的指针 指针与数组1:任何一个数组下标运算都等同于一个对应的指针运算:对数组只能知道数组的大小,和获得指向下标为0的指针,intcalendar[12][31];sizeof(ca

字符和字符串的基础知识

/* ============================================================================ Name : TestChar.c Author : lf Version : Copyright : Your copyright notice Description : 字符和字符串的基本知识 ======================================================================

LCD1602 显示数字,字符,自定义字符,字符串,光标

/******************************************* 程序名:   1602液晶屏时钟程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏  STC12C4052AD 外部12MHZ晶振  接线定义:  DB0_DB7 --> P1^0 --P1^7 RS   = P3 ^ 2;         RW   = P3 ^ 3;   E    = P3 ^ 4;   功能:测试LCD1602的显示,显示时间,http://990487026.b

LCD1602显示,用4位总线显示数字,字符,自定义字符,字符串,光标

/******************************************* 程序名:   1602液晶屏时钟程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏  STC12C4052AD 外部12MHZ晶振  接线定义: DB7 --> P1^7 DB6 --> P1^6 DB5 --> P1^5 DB4 --> P1^5 RS   = P3 ^ 2;   RW   = P3 ^ 3;   E    = P3 ^ 4;   功能:LCD1602显

【Qt学习笔记】6.Qt中的字符、字符串

一.字符集 字符集是一个人为的规定,人们先用一个小册子规定好了"文字字符"与"数字"的对应关系. 七种,每一个字符对应的数字,也成为该字符的编码.例如,ASCII码表就是一个字符集, 'A'字符对应的编码是65 ASCII: 0 ~ 127,最高位为0 拉丁字符集:最高位为1 Unicode Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案 Unicode用数字0 ~ 0x10FFFF来映射这些字符,最多可以容纳1114112个字符 是一个超

C++ 第八课 标准c字符和字符串

atof() 将字符串转换成浮点数 atoi() 将字符串转换成整数 atol() 将字符串转换成长整型数 isalnum() 当字母或数字字符时, 返回真值 isalpha() 当字母字符时, 返回真值 iscntrl() 当控制字符时, 返回真值 isdigit() 当数字字符时, 返回真值 isgraph() 当非空格可打印字符时, 返回真值 islower() 当小写字母字符时, 返回真值 isprint() 当可打印字符时, 返回真值 ispunct() 当标点字符时, 返回真值 is

字符、字符串、数组

1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串 在c语言中,将字符串作为字符数组来处理.(c++中不是)

Swift字符与字符串

学习来自<极客学院:Swift中的字符串和集合> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 4 /*******************字符********************/ 5 /* 6 1.单个字符来指定字符常量,如“A”.“9” 7 2.转义字符表示特殊字符常量,如“\n”.“\t” 8 3.使用 \u{n} 的Unicode形式,n代表一个1-8位的十六进制数 9 4.必须用双引号

字符、字符串和文本的处理之String类型

.Net Framework中处理字符和字符串的主要有以下这么几个类: (1).System.Char类 一基础字符串处理类 (2).System.String类 一处理不可变的字符串(一经创建,字符串便不能以任何方式修改) (3).System.Text.StringBuilder类 一更高效地构建字符串 (4).System.Secureity.SecureString类 一对字符串进行保护操作,它可以保护密码和信用卡资料等敏感字符串. 一.String类型 1.简介 在任何应用程序里面,S