gpt4 book ai didi

c++ - C++中的字符串和整数乘法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:16 24 4
gpt4 key购买 nike

我写了下面的代码

#include <iostream>

#define circleArea(r) (3.1415*r*r)
int main() {
std::cout << "Hello, World!" << std::endl;
std::cout << circleArea('10') << std::endl;
std::cout << 3.1415*'10'*'10' << std::endl;
std::cout << 3.1415*10*10 << std::endl;

return 0;
}

输出如下

Hello, World!
4.98111e+08
4.98111e+08
314.15

我的疑问是为什么 3.1415 * '10'*'10'4.98111e+08。我想当我将一个字符串乘以一个数字时,数字将被转换为一个字符串,生成一个字符串。我在这里遗漏了什么吗?

编辑:根据评论改写问题,我知道单引号和双引号是不一样的。因此,'1' 代表单个字符。但是,'10' 代表什么

最佳答案

'10' 是一个多字 rune 字;请注意单引号的使用。它有一个 int 类型,它的值是实现定义的。比照。 "10"const char[3] 类型的文字,该数组的最后一个元素设置为 NUL

通常它的值是 '1' * 256 + '0',在 ASCII(C++ 支持的常见编码)中是 49 * 256 + 48,这是12592.

关于c++ - C++中的字符串和整数乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50758207/

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