TCHAR 指针初始化
TCHAR pointer initialization
我正在尝试理解以下代码:
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
时,您所做的只是更改指针指向的位置。
相关文章:
- 分段错误 - 读取初始化指针的数组
- 初始化指针的常量向量
- 初始化指针或引用成员变量以指向另一个成员
- C++初始化指针/引用/复制细微差别
- 使用无效指针初始化指针声明符的行为是否未定义?
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 如何使用可变模板初始化指针?
- 初始化指针时出现写入访问冲突
- C 错误,带有卷曲括号的字面初始化指针
- 重新初始化指针是一种不好的做法吗?
- 初始化指针?C
- 初始化指针向量的向量
- 如何在类函数中正确初始化指针
- C++初始化指针会使应用程序随机崩溃
- 初始化指针结构 - 内存中的外观
- 如何使用struct构造函数在结构中初始化指针阵列
- 在一行中声明并初始化指针到类实例
- 分配数组与初始化指针
- QT 中的非初始化指针
- 使用地址值初始化指针