为了账号安全,请及时绑定邮箱和手机立即绑定

c指针用的不当,为什么啊?输不出a=2????

c指针用的不当,为什么啊?输不出a=2????

C
慕码人4316537 2016-04-30 20:47:44
void f(double *f){  *f+=1;}int main(){  int a=1;  f((double *)&a);  printf("%d ",a);}
查看完整描述

2 回答

?
asd8532

TA贡献143条经验 获得超187个赞

#include <stdio.h> 

int f(double *f){

  //printf("%f \n",*f);这里是0
  //*f+=1;
  //printf("%f \n",*f);这里是1
  
  //printf("%d \n",*f);这里是1
  //*f+=1;
  //printf("%d \n",*f);这里是0
  
  *f+=1;
   return (int)*f;
}
int main()
{
  int a=1;
  a = f((double *)&a);
  printf("%d ",a);
  return 0;
}


查看完整回答
反对 回复 2016-05-01
?
jfhdibrbfjd

TA贡献163条经验 获得超40个赞

你看着  强制类性转换   有问题   请你仔细看我做的

5724cf2000014a7305000320.jpg

5724cf2a00019fe602780277.jpg


查看完整回答
反对 回复 2016-04-30
  • 2 回答
  • 0 关注
  • 1381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信