孤星如晨 2019-07-11 11:38 采纳率: 33.3%
浏览 2274
已结题

c++ 是怎么将char字符转化成二进制数字存到内存中的

代码如图:图片说明
本小白刚开始学c++,项目用的固定基址,所以每次exe启动,这些地址都是固定的,运行结果如下图:图片说明
但是,当我打开CE,查找这三个地址内的数据时,发生了疑问,前两个地址,存的int型的数据,读出来的结果分别是,987654321和987,这和我程序内初始化的值一样,很正常。但是第三个地址,显示的值为3435973736。
我知道,所有的数据,或者说变量,编译后都是会转化成二进制数据保存。所以定义的 char s='h';编译后h被转化为数字也是正常的。原本以为是根据ascii码转化,或者utf8转化。结果。。查出来的值是3435973736。
请问各位大神,为什么‘h’的转化结果为3435973736,c++是根据什么规则将字符转化成数字的?

  • 写回答

5条回答 默认 最新

  • threenewbee 2019-07-11 11:55
    关注

    3435973736这个是地址,因为m_i放在堆栈上,所以这个地址指向了堆栈,显然,在程序没有运行的时候,无法确定它是多少,要程序运行调用到了这里才知道。
    所以和C++编译器无关。

    评论

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题