MST
星途 面试题库

面试题:C++中字符常量在内存中的存储方式及相关操作

在C++中,字符常量比如 'a' 是如何存储在内存中的?请说明其存储的具体机制,并编写一段代码,将一个字符常量赋值给一个char类型变量,然后通过指针访问该变量,输出存储的内容(以十六进制形式)。
44.1万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 存储机制
    • 在C++中,字符常量(如 'a')以其对应的ASCII码值存储在内存中。字符 'a' 的ASCII码值是97(十进制)。char 类型通常占用1个字节(8位),所以 'a' 在内存中以97的二进制形式 01100001 存储。
  2. 代码实现
#include <iostream>
#include <iomanip>
int main() {
    char ch = 'a';
    char* ptr = &ch;
    std::cout << "存储的内容(十六进制):0x" << std::hex << static_cast<int>(*ptr) << std::endl;
    return 0;
}

这段代码首先定义了一个 char 类型变量 ch 并赋值为 'a',然后定义了一个指向 ch 的指针 ptr。通过指针 ptr 访问 ch 存储的内容,并使用 std::hex 将输出格式设置为十六进制,最后输出该内容。