有什么理由喜欢static_cast<>超过C风格的演员吗?它们是等价的吗?他们有什么速度差异吗?
这个答案附带了一个有趣的声明 - "在int*小于a的机器上char*".(让我们排除指向函数的指针)
指向不同类型的指针是否有可能具有不同的大小?为什么这会有用?
char *sBuffer=new char[20];
char * sStringStart = sBuffer;
long * plMsgStart = (long *) sBuffer;// what is this line doing
long i=500;
*plMsgStart = i // what is this line doing
Run Code Online (Sandbox Code Playgroud)
最后一行是否在char数组中分配500?但是当我打印数组时,我得到了垃圾值
嘿,下面的人是实际的代码,我在将代码从c ++转换为c#时遇到了它,下面的代码是c ++函数的一部分,现在为什么下面的函数会给出垃圾值?
char *sBuffer=new char[20];
char * sStringStart = sBuffer;
BSTR bsMsgBody= SysAllocString(L"Helo");
sStringStart+=4;
long * plMsgStart = (long *) sBuffer;
long l=50;
*plMsgStart=l;
sprintf(sStringStart, "%S", bsMsgBody);
printf("%S",sBuffer);
Run Code Online (Sandbox Code Playgroud)