TCHAR指针初始化

时间:2015-01-10 19:25:40

标签: c++ c string pointers tchar

我想了解以下代码:

const TCHAR * portName = "COM15";

据我所知,TCHAR是Char(在ANSI中)或wChar(在Unicode中),基本上是一个1字节或2字节的容器来表示某些东西。

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

那么代码行中究竟发生了什么?

是否创建了一个字符串(“COM15”),而“=”符号实际上意味着该字符串的开头位置是否被赋予portName?

2 个答案:

答案 0 :(得分:2)

  

"正在创建一个字符串(" COM15")并且" =" sign实际上是指该字符串开头的位置是否被赋予portName?"

是的,确切地说。但是,除了你可能已经预料到的问题之外,在编译程序时会发生这种情况,而不是在运行时。此外,const关键字禁止稍后在运行时更改该指针。

答案 1 :(得分:1)

C的工作原理:

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

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