首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >const字节*和const LPBYTE

const字节*和const LPBYTE
EN

Stack Overflow用户
提问于 2014-02-09 18:59:31
回答 2查看 3.4K关注 0票数 1

在编译折叠代码(仅举一个例子)时,“const字节*”和“const LPBYTE”之间似乎有区别:

代码语言:javascript
复制
void Test(const BYTE * c,const LPBYTE d) {
 c++; // OK
*c++; // OK
 d++; // ERROR
*d++; // ERROR

}

我在visual studio上得到了“您不能赋值给一个变量const”,我在代码块上尝试了它,并得到了“只读参数‘d’的增量”。我也使用了typedef BYTE* bytes,但是得到了同样的错误。

这是怎么回事,为什么我可以修改'c‘而不是'd’?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-09 19:53:27

您应该知道以下两种数据类型的不同(“*”的确切位置):

代码语言:javascript
复制
char const *variable_1;
char *const variable_2;

"variable_1“是指向只读字节的指针。然而,"variable_1“本身并不是只读的。

"variable_2“是指向字节的只读指针。然而,它所指向的字节不是只读的。

这意味着:

代码语言:javascript
复制
variable_1 = &xxx; // OK
variable_2 = &xxx; // Error
*variable_1 = yyy; // Error
*variable_2 = yyy; // OK

以上两种类型的含义如下:

代码语言:javascript
复制
const BYTE *   ==   BYTE const *
const LPBYTE   ==   BYTE * const
票数 6
EN

Stack Overflow用户

发布于 2014-02-09 19:09:33

const LPBYTE是指向字节的常量指针,而不是指向const byte的指针。你只需要知道*的位置

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21663465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档