繁体   English   中英

“ const wchar_t* ” 是指针吗? [复制]

[英]Is " const wchar_t* " a pointer? [duplicate]

通常当我们写:

int a = 10;
int* ptr = &a;
std::cout << *ptr;

代码 output 是:

> 10

但是当我写这个时:

const wchar_t* str = L"This is a simple text!";
std::wcout << str << std::endl;
std::wcout << &str << std::endl;

代码 output 是:

> This is a simple text!
> 012FFC0C

所以这让我很困惑。

  • 那个星号符号不是代表指针吗?
  • 如果是指针,我们怎么可能赋值给地址值以外的值呢?
  • 顶部 output 不应该在底部,底部 output 不应该在顶部吗?

L"This is a simple text "是一个类型为const wchar_t[23]的数组,包含所有字符串字符和一个以 0 结尾的字符。 Arrays 可能会衰减,在这种情况下,它们会变成指向数组中第一个元素的指针,这就是发生在

const wchar_t* str = L"This is a simple text!";

std::wout可以与<<运算符一起使用,该运算符将这样的 null 终止字符作为第二个操作数; 此运算符打印字符串。

第二个打印只是打印指针的地址,因为<<运算符处理const wchar_t**类型的参数与任意指针类型不同(除了在第一个打印中看到的某些特定指针类型)没有重载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM