gpt4 book ai didi

c++ - 为什么不会自动分配 long long 类型的值?

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:23 24 4
gpt4 key购买 nike

使用 auto,我创建了一个变量 number 并使用 cin.get 获取值。我使用这段代码来这样做:

auto number = cin.get();
cout << typeid(number).name() << endl;

似乎即使我输入了一个超过 2147483647 的数字,该值仍然被指定为 int 类型。为什么是这样?如果数字超过最大 32 位 int 值,难道不应该自动分配一个 long 类型的值吗?

最佳答案

auto 在编译时解析,并根据 cin.get() 的返回类型(恰好是 int 根据定义)。

此外,表达式 typeid(number).name() 也在编译时求值,这意味着编译器将其解析为常量值(例如,"i" 用于我的系统)并将其存储在可执行文件中。

关于c++ - 为什么不会自动分配 long long 类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com