我正在尝试从Ruby/PHP/Java背景中学习C,并且我发现你几乎总是明确地投射东西(至少在教程中).就像,我总是看到类似的东西
double x, y;
x = 1.0;
/*...*/
y = x*5.0;
Run Code Online (Sandbox Code Playgroud)
但是,似乎在我的Mac版本的GCC上,自动投射工作.
将.0留在事物上只是风格问题,还是做一些C编译器而不是自动播放?
常量具有分配给它的类型:
int i = 1;
double x = 2; // 2.0
Run Code Online (Sandbox Code Playgroud)
显式演员:
i = (int)x;
x = (double)i;
Run Code Online (Sandbox Code Playgroud)
隐式演员:
i = x;
x = i;
Run Code Online (Sandbox Code Playgroud)
型号促销:
x = i / 2.0; // i is promoted to double before being multiplied
x = (double)i / 2.0; // so evaluates as this
Run Code Online (Sandbox Code Playgroud)
VS
x = i / 2; // i is not promoted because 2 is an int
x = (double)( i / 2 ); // so evaluates as this
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3387 次 |
| 最近记录: |