C语言中int a=46. 如何理解?

最近看到教材上这样写:

int a=46.

我想问一下如何理解该用法,是不是将float型隐式转换成int型?
同时呢,这种用法有相应的应用么?

首先,是,但这种转换应用不多,反而有点不简化。如:

int a
...
a = a + 9.8

按照隐式处理方式,在处理 a=a+9.8 时,首先 a 转换为 double 型,然后进行相加,结果为 double 型,再将 double 型转换为整型赋给 a。

int a
...
a = a + (int)9.8

这时直接将 9.8 转换成整型,然后与 a 相加,再把结果赋给 a。这样可把二次转换简化为一次转换。

数据类型转换包括隐式类型转换显式(强制)类型转换。隐式类型转换就是在编译时由编译程序按照一定规则自动完成,而不需人为干预。因此,在表达式中如果有不同类型的数据参与同一运算时,编译器就在编译时自动按照规定的规则将其转换为相同的数据类型。具体隐式转换规则还是需要看标准文档。Btw,float么,好像是double…
参考:http://www.nowamagic.net/libr…

这个是把一个double的值隐式转为int,没见过什么特别需要记住的应用,它就是用来做转换,什么时候你需要了就用下

  • 基于.net框架3.5与4.0开发的程序无法兼容
  • C++编译的软件,如果不加壳的话,怎么保护代码?
  • 关于C++类中++的运算符重载问题,后置自增表达式不行?
  • unity3d有办法用任何方法弄出一个TextAsset 吗?
  • ORACLE 创建数据库
  • 09年腾讯实习招聘面试题//纯C
  • 多线程中vector push_back问题
  • 同样的源代码在visual studio能正确执行,g++运行结果有问题?
  • 求一个高效的double转char*的算法,C或C++
  • 如果是有一万个甚至几万个任务去执行如何分配线程?
  • 单文件WPF桌面程序安装包制作