关于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'。