|
|
1
13
尝试
或
在C++中,“ab”不是一个
解决方法是从字符数组中生成一个std:string。std:strings允许您按预期向它们追加字符:
|
|
|
2
8
问题是“ab”不是C++。
有一个
因此,解决方案是手动创建字符串:
现在编译器可以找到正确的运算符+来调用。 |
|
|
3
5
在C++中,编译器正在用这个原型寻找函数:
因为没有一个,它无法找出什么不是,也无法解决
|
|
4
3
给定C++代码:
Java中的等价物是:
这两种方法都会促进char到int。当然,在Java中,它会进行范围检查,从而引发异常。在C++中,你只会得到未定义的行为(或一些行为)。 |
|
5
2
爪哇:
输出为:
编辑: 实际上编译器硬编码字符串abc… 如果执行“ab”+argv[0].charat(0);使其使用变量,则编译器将执行以下操作(基本上):
|
|
|
6
1
你可以把C和C中的字符串和字符串起来,我猜它不像C++那样严格。 这在C中很有效:
|
|
|
7
1
C++编译器不会自动将字符串文字与字符文字连接起来。但它会将字符串文本互相连接起来。语法如下:
正如其他人提到的,
|
|
8
1
嗯,我通常在C++中做什么 字符串名称=字符串(“ab”)+“c”; 记住文字“ab”是 不 字符串类型。您所做的是希望在char数组和char之间没有“+”,然后希望编译器可以不知何故地注意到您真的希望结果是一个std::string,然后分析右侧的表达式以获得一些隐式转换的组合,这些隐式转换可以与用于produc的运算符组合在一起。e这类结果。对我来说似乎是个很高的要求。 不管怎样,这并不重要。在C语言中,数组和指针的唯一区别就是它们的内存分配方式。一旦你有了一个,你基本上就有了一个“数组/指针的东西”。因此“+”是一个在所有数组和指针上定义的运算符,它接受任何整数类型的另一个参数,并进行指针数学运算,返回指向该点之后的许多元素的指针。而且,在C中,“char”实际上只是另一种整数类型。这些C设计决策都很有用 黑客 但是,正如黑客经常发生的那样,它们与直观的意外结果结合在一起。所以“ab”+“c”所做的就是返回一个地址99个字节,而“ab”字恰好存储在内存中。 有时您可以依赖于隐式转换,但您必须做好准备,以便在其他时候帮助编译器。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |