*(int *)&a和(int &)a啥区别
前者是一个c语言例子上的,意思是a地址处内容按整形取出,这个明白,但是加上另一句就不行了,如下:
#include <stdio.h>
int main()
{
float a = 12.5;
printf("%d\n", (int)a);
printf("%d\n", *(int *)&a);
//printf("%d\n", (int &)a);//xxx//dereferencing type-punned pointer will break strict-aliasing rules
return 0;
}
//xxx处的句子是在一个c++程序里见的(http://blog.sina.com.cn/s/blog_96551047010122m9.html),但是换成c++也是同样错误啊!我怎么不记得c语言哪里见过(int &)?但c++貌似也不认啊?