gpt4 book ai didi

c++ - 我只是期待打印 char 值。发生了什么事?

转载 作者:行者123 更新时间:2023-11-28 04:17:27 26 4
gpt4 key购买 nike

我期待的输出是A B C Dw x y z

它与 cout 的处理顺序有关吗,我的意思是从左到右还是从右到左。

#include <iostream>
using namespace std;
void dummy_func1() {
char a = 'a';
char b = 'b';
char c = 'c';
char d = 'd';
cout<<&a<<" "<<&b<<" "<<&c<<" "<<&d<<endl;
}
char w = 'w';
char x = 'x';
char y = 'y';
char z = 'z';
void dummy_func2() {
cout<<&w<<" "<<&x<<" "<<&y<<" "<<&z<<endl;
}
int main()
{
dummy_func1();
dummy_func2();
}

abcd bcd cd d

w xw yxw zyxw

最佳答案

将 char 值传递给 cout 时,您应该省略 &

您有效地传递了一个 char*,而 cout 将其解释为一个以 null 结尾的字符串。

您的程序没有崩溃的事实仅仅是因为内存恰好由 C 运行时布局。

如您所见,堆内存和栈内存中值的顺序是相反的,但这完全是偶然的,只有当您想深入了解 C/C++ 的内部时才会感兴趣。 :)

关于c++ - 我只是期待打印 char 值。发生了什么事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com