C++ : Arrays and memory locations

标签 c++ arrays

字符数组总能引起我的兴趣。

让我们创建一个整数类型的数组-

int a[]={1,2,34};
cout<<a;

在这种情况下 cout<<a给我们数组的位置 a

但是-

char a[]="C++";
cout<<a;

给我们C++作为显示器,还是挺有意思的。

1) 那么为什么字符数组在与 cout 一起使用时不显示其内存位置?

2)如何找到字符数组的位置?

所有帮助将不胜感激:)

- 有学习意愿的 C++ 新手

最佳答案

"1) So why doesnt the array of characters show its memory location when used with cout?"

有一个专门的重载

std::ostream& operator<<(std::ostream&, const char*);

这就是为什么您总是看到打印的字符,而不是地址。

"2) How can I find the location of an array of characters?"

如果您想查看char 数组的地址,您可以转换为void* 指针:

char a[]="C++";
cout << (void*)a;

或者只是将地址运算符作为前缀作为 @WhozCraig建议 their comment

cout << &a;

关于C++ : Arrays and memory locations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27459598/

相关文章:

c++ - 为什么std::unique_lock在不使用的时候在这里声明

c++ - MinGW下使用makefile编译所有CPP文件

c++ - 设置不插入

javascript - jQuery - 呈现大量可滚动数据的最佳方式

c 遍历一个数组

c++ - 如何在 C++ 中正确创建线程类的子类(std::thread 的子类)

c++ - 是否有任何 API 或方法可以防止对动态分配的内存进行读访问(和写)?

c - 二维数组的段错误

PHP 函数数组默认值?

javascript - javascript数组在推送新元素时如何工作?