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

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 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退