TCHAR 指针初始化

TCHAR pointer initialization

本文关键字:初始化 指针 TCHAR      更新时间:2023-10-16

我正在尝试理解以下代码:

const TCHAR * portName = "COM15";

我知道 TCHAR 要么是 Char(在 ANSI 中)要么是 wChar(在 Unicode 中),基本上是一个代表某物的 1 字节或 2 字节容器。

现在,如果我声明一个指向名为 portName 的 const TCHAR 的指针,则 portName 就是一个指针。当我使用"="符号时,我给该指针一个值,对我来说,"COM15"将是地址似乎是不合理的。我假设代码行给了我一个指向"COM15"字符串开头位置的指针,对吗?

那么这行代码中到底发生了什么呢?

是否正在创建字符串("COM15"),并且"="符号实际上意味着该字符串开头的位置被赋予了portName?

"

是否正在创建一串字符("COM15"),并且"="符号实际上意味着该字符串开头的位置被赋予了portName?"

是的,没错。但是,除了听起来像您所料的那样来自您的问题之外,这发生在编译程序时,而不是在运行时。此外,const 关键字禁止以后在运行时更改该指针。

C 的工作原理如下:

当你在 C 中说char * str1时,你是在内存中分配一个指针。当你写str1 = "Hello";时,你正在内存中创建一个字符串文字,并使指针指向它。

当您创建另一个字符串文字"new string"并将其分配给str1时,您所做的只是更改指针指向的位置。