0 c ternary-operator void-pointers
我有一个与三元条件运算符一起使用的void指针的问题.
的情况下:
int x = 5;
void * pointer = &x;
printf("x: %d \n", 1 == 1 ? (*((int*)pointer)) : (*((char*)pointer)));
Run Code Online (Sandbox Code Playgroud)
它写入控制台的数字5,whitch是正确的活动.但是当我将最后一行char更改为double时:
printf("x: %d \n", 1 == 1 ? (*((int*)pointer)) : (*((double*)pointer)));
Run Code Online (Sandbox Code Playgroud)
然后写0,我不知道为什么.我知道我可以使用if-else而不是它但我只是好奇它为什么这样工作.谁能帮助我?