【问题标题】:Why does a char with 2 spaces print a int value? [duplicate]为什么带有 2 个空格的 char 打印一个 int 值? [复制]
【发布时间】:2021-10-30 18:27:27
【问题描述】:
#include <iostream>
using namespace std;

int main() {

    
    for(int i = 0; i < 10; i++) {
        //print a char including two spaces
       cout<<'  '<<endl;
        //output shows me 8224 
    }
    system("pause");
    return 0;
}

Here is the screenshot of the output

为什么会显示 8224?

【问题讨论】:

  • 那不会编译,更不用说运行和打印任何东西了。
  • char * p 不是字符。它是一个指向字符的指针
  • 多字符字面量的值取决于实现。不要在没有查阅编译器文档的情况下使用它们。
  • 为什么当我打印一个包含两个空格的字符时,输出会显示整数值?
  • 您的代码无法编译 godbolt.org/z/oc4n8Mv3G

标签: c++ char


【解决方案1】:

您打印的是指针,而不是字符。 char *p 是指向字符的指针,当你打印指针时,它们看起来像整数。

问题不是' ',虽然这是个问题,因为单引号只需要一个字符。双引号用于字符串文字,可以存储在char *指针中。

【讨论】:

    猜你喜欢
    • 2014-10-14
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2022-08-20
    • 2020-12-06
    • 1970-01-01
    • 2023-01-31
    • 2017-07-30
    相关资源
    最近更新 更多