永发信息网

const void *& 和 const PVOID &的区别

答案:1  悬赏:50  手机版
解决时间 2021-11-08 15:36
  • 提问者网友:动次大次蹦擦擦
  • 2021-11-08 00:43
const void *& 和 const PVOID &的区别
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-11-08 00:57
const void*& B; // 声明一个引用类型为 const void 的指针。
这个就需要 const void* b 才可以

void* const& B; // 声明一个引用类型为 void* 的常量指针。追问但是
为什么const PVOID &B;//可以通过?
PVOID 应该是 typedef void *PVOID
那么
const PVOID &B;

const void *&B;
应该是一样不能通过的

为什么 const PVOID &B可以通过?
是 typedef 的原因还是怎么????

而且 如果
int b
const int &B;
也就是把 void*换成 int 后是可以通过的追答// 指向常量
const int* A;
const int*& B = A;
int a;
B = &a; // OK B不是常量,可以修改
*B = 100 //ERROR B指向的是常量,不可修改
a = 100 // OK

// 指针常量
int a;
int *const A = &a;
int *const& B = A;
int b;
B = &b; // ERROR B是常量,不可修改
*B = 100 // OK B指向的不是常量,可以修改
assert(a == *B);

// 定义类型
typedef int* PINT

int a;
const PINT A = &a; // A是一个int指针常量
const PINT& B = A;
int b;
B = &b // ERROR 不能修改常量
*B = 100; // OK 可以修改指向的变量a的值
assert(a == *B);

只要你能理解“指针常量”和“常量指针”,就会明白
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯