C++ C++;字符串cout字符丢失

C++ C++;字符串cout字符丢失,c++,std,iostream,C++,Std,Iostream,这是Visual studio中的一个控制台应用程序,因此我想看看如果在cout中调用cout会发生什么。它有点工作,但它删除了一个有点奇怪的角色。因此,它会从main的cout中的字符串中删除字符量。因此,它将从doPrint()函数的返回值中删除尽可能多的字符 例如: 如果返回值为1,它将输出“aaaaa blllll” 如果返回值为2,则将输出“aaaaa llll” #包括“stdafx.h” #包括 int doPrint() { std::cout嗯,基本上发生的是指针算法和指定的函

这是Visual studio中的一个控制台应用程序,因此我想看看如果在
cout
中调用
cout
会发生什么。它有点工作,但它删除了一个有点奇怪的角色。因此,它会从
main
cout
中的
字符串中删除字符量。因此,它将从
doPrint()
函数的返回值中删除尽可能多的字符

例如: 如果返回值为1,它将输出“aaaaa blllll” 如果返回值为2,则将输出“aaaaa llll”

#包括“stdafx.h”
#包括
int doPrint()
{

std::cout嗯,基本上发生的是指针算法和指定的函数调用求值顺序

"BBLLLLLLLLLL" + doPrint()
所以

屈服

BLLLLLLLLLL
LLLLLLLLLL

屈服

BLLLLLLLLLL
LLLLLLLLLL
使用
std::cout

它对字符数组文本应用函数指针算法,并“松开”字符,因为
doPrint()
生成的值大于
0


+
的运算符优先级高于
“bbllll”+doPrint()
当然不会像您认为的那样执行操作。请阅读指针算术。这可以简化为
int main(){std::cout@user4568696好吧,要想让它成为一个好的答案,这个时候还需要10张赞成票:-P…@Boopy别担心,我只是在开玩笑,我已经得到了足够的奖励;-)。找到“接受”按钮至少是你这边足够好的行动。
LLLLLLLLLL
 std::cout << "BBLLLLLLLLLL" + doPrint() << std::endl;