关于c++字符串的一个问题
(liupq 2009.11.19)
问题:
s="C++ is great fun!"+'\n';
cout<<s;
cout<<s;
以上语句的输出是什么:
答案:
at fun
解释:一个字符串常量像"abcd" 它是一个指针常量,表示指向这个字符串的首地址,属于const char[]类型,不能改变这个字符串的值。
解释:一个字符串常量像"abcd" 它是一个指针常量,表示指向这个字符串的首地址,属于const char[]类型,不能改变这个字符串的值。
const char[]加上一个字符,字符被转化为ASII(整数),'\n'的值是10;
字符串的首地址加一个整数代表是的指针位置偏移;
总结以上,对于"C++ is great fun!"+'\n',是"C++ is great fun!"的首地址的指针往后移动10个位置,所以得到的是at fun.
延伸:
"C++ is great fun!"+“\n”是一个错误?为什么?
如何在"C++ is great fun!"串合拼上一个字符'\n'。
本文详细解析了C++中字符串的特殊操作,包括字符串常量的指针特性、'
'字符的ASCII值及其在字符串中的作用,以及如何正确地在字符串末尾添加换行符。通过实例演示了字符串偏移的概念,最终得出输出结果为atfun。

1707

被折叠的 条评论
为什么被折叠?



