我只是期望打印炭值.正在发生什么

I was just expecting the char values to be printed.What is happening?

本文关键字:什么 期望 打印      更新时间:2023-10-16

我期望的输出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将其解释为无效的字符串。

您的程序没有崩溃的事实仅仅是因为C运行时恰好记忆的方式。

如您所见,

堆和堆栈内存中的值顺序是逆转的,但这是完全偶然的,只有在您想挖掘C/C 的内部时才引起人们的关注。:(