关于LPCTSTR,刚才看别人的帖子发现的一个问题
以下四种用法,结果是一样的,而且我查了一下
LPCTSTR:常量的TCHAR指针。定义为:typedef const char* LPCTSTR
下面四种用法,结果都一样:
1.char a[100]="12345";
CString str1=(LPCTSTR)&a;
2.char a[100]="12345";
CString str1=(LPCTSTR)a;
3.char a[100]="12345";
CString str1=(const char*)&a;
4.char a[100]="12345";
CString str1=(const char*)a;
AfxMessageBox(str1)都是“12345”
不过如果把a定义成指针char* a ="12345";
结果就不一样啦
只有2、4的结果是对的,1,3虽然不对,但是编译也没有报错,弹出来的是乱码,应该是a指针的地址;我知道指针和数组名是有区别的,但是上面四个赋值为啥结果都一样呢,谁能告诉我const char*和LPCTSTR是怎么实现强制转换的
谁解释一下原因?