【发布时间】:2015-01-10 19:25:40
【问题描述】:
我正在尝试理解以下代码:
const TCHAR * portName = "COM15";
我知道 TCHAR 是 Char(ANSI 格式)或 wChar(Unicode 格式),基本上是一个 1 字节或 2 字节的容器来表示某些东西。
现在,如果我声明一个指向名为 portName 的 const TCHAR 的指针,那么 portName 就是一个指针。当我使用“=”符号时,我给该指针一个值,对我来说,“COM15”将是地址似乎是不合理的。我假设那行代码给了我一个指向“COM15”字符串开头位置的指针,对吗?
那么那行代码中到底发生了什么?
是否正在创建一个字符串(“COM15”),并且“=”符号实际上意味着该字符串的开头位置正在提供给 portName?
【问题讨论】:
-
要正确获取此文字,请使用
_T()宏:const TCHAR * portName = _T("COM15"); -
字符串“COM15”存储在只读位置,该位置的地址返回给您的指针。
-
注意代码不正确。它应该是
const char*或TEXT("COM15")。当前示例不会编译为 Unicode。
标签: c++ c string pointers tchar