字符数组地址和整数数组地址
Character array address and integer array address
我对这个问题很好奇
int p[] = {1,2,3};
cout << p;
它将输出第一个元素(1(
的地址,但是.....
char p[] = {'a','b'};
cout << p;
它不会输出第一个元素的地址,但会输出整个数组"ab"。
为什么会这样?
第一个将使用std::basic_ostream<>::operator <<(const void *)
,它只会输出地址。第二个使用std::operator<<(std::basic_ostream<> &, const char *)
它将输出字符数组,就像它是字符串文字一样。
相关文章:
- 从 C++ 中的函数返回数组地址问题
- 打印字符数组地址的正确方法
- 给定特定内存地址的数组的动态内存分配
- 字符数组地址和整数数组地址
- 直接从指针/地址访问数组的元素
- C++返回静态数组地址的函数
- C++ 在 64 位平台中传递字符数组地址
- 获取字符数组地址,然后转换为指针字符
- 如何指向实际元素而不仅仅是数组地址
- 使用数组外部地址的数组运算符
- C++将 2 个或更多地址超过数组末尾是否合法
- 如何使用数组地址反转数组
- 运算符 new[] 的返回地址与数组的实际地址之间的差异
- 链表数组 – 地址簿
- 数组地址的地址
- 缺少存储数组地址的内存
- 获取地址在数组2d中的位置
- 将指针数组地址传递给函数并更新地址中的数据
- 通过复制将数组地址传递给匿名函数失败
- 数组地址不可见