[问题] int array 转 double point

楼主: usanhuang (呱呱)   2017-08-29 01:58:58
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Dev C
问题(Question):
刚刚看到一个有点想不通的问题
void Test()
{
int array[]={1,2,3,4,5};
double* a = (double*) (&array[0]);
printf("%d\n",*a);
printf("\n");
}
address value
______
| |
732 | 4 |
|______|
| |
728 | 3 |
|______|
| |
724 | 2 |
|______|
| |
a
作者: Schottky (顺风相送)   2017-08-29 02:04:00
因为你在 printf 用 %d ..... 小心点! 这样用会出事的!可以一眼看出来是因为我也出过事 XD
作者: littleshan (我要加入剑道社!)   2017-08-29 02:12:00
undefined behavior
作者: chuegou (chuegou)   2017-08-29 08:36:00
printf哪里也要转型
作者: Killercat (杀人猫™)   2017-08-29 11:43:00
你这想法太理所当然 没考虑endian... XD
楼主: usanhuang (呱呱)   2017-08-29 21:09:00
谢谢大家的解惑 真的完全没想到跟%d那边有关

Links booklink

Contact Us: admin [ a t ] ucptt.com