LPCVOID 类型的参数值被修改
C++中 LPCVOID的定义为:typedef CONST void far *LPCVOID;,根据其定义可以看出此类型的指针指向的值是不能改的,但实际上可以被修改(值和指针都可以被改,那const有什么意义呢),这是什么原因?
#include "stdafx.h"#include "public.h"void constVarTest(LPCVOID pcNum){ *(int*)pcNum = 2; //LPCVOID虽有const修饰但还是可以修改其值 printf("in function a=%d\n", *(int*)pcNum );}int main(int argc, char* argv[]){ int a = 1; printf("old a: %d\n", a); constVarTest(&a); printf("new a: %d\n", a); return 0;}//public.htypedef const void *LPCVOID;