字符串合成之后为空
#include<iostream>using namespace std;
void ab(const char* a);
int main()
{
char a = '5';
ab("1234" + a);
return 0;
}
void ab(const char* a)
{
cout << a << endl;
return;
这为什么不会输出“12345”? "1234"是一个静态地址 加上一个偏移量 然后你懂了吧{:301_1004:} 本帖最后由 我的爱是你 于 2020-4-11 20:09 编辑
事实上那输出了一个不可显示的空白符合,不信你把a = '0' 这样你就看到见了。
综上所述c++不支持或不知晓如何直接用char* 进行+字符操作,你这是违规操作 输出为随机或垃圾的数据指针。
而string 重载了 + 运算符所以可以 进行 str +" "字符的操作。 感谢分享!!!!!!!!!!
页:
[1]