我只是期望打印炭值.正在发生什么
I was just expecting the char values to be printed.What is happening?
我期望的输出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 的内部时才引起人们的关注。:(
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 什么 /可以/ 你从一个函数返回. 并期望它在到达时还活着?
- 我只是期望打印炭值.正在发生什么
- GCC:我什么时候可以期望返回大型C++对象是有效的
- 将auto_ptr传递给期望对auto_ptr进行常量引用的函数有什么危险
- C#:函数期望什么作为IntPtr参数
- 我能合理地期望编译器能够内联什么?
- 什么时候可以使用期望运算符