什么是int *。语法呢?

时间:2015-09-22 12:54:07

标签: c++

我是C ++的新手,这个问题可能很容易为您解答。我无法找到这种语法的实际含义。所以我有:

struct Vec {        
double x, y, z; 
Vec(double x_=0, double y_=0, double z_=0){ x=x_; y=y_; z=z_; } 
};

int w = 1024, h = 768;
Vec cx = Vec(w*.5135/h);

最后一行发生了什么?我正在创建一个Vec类型的新结构,还有什么? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

相当于:

Vec cx = Vec(w*0.5135/h);

答案 1 :(得分:2)

这是编写浮点数的简短方法。你可以这两种方式(当然它必须是浮动的两倍)。十进制数分为3部分(不包括符号):

123 . 456
 |  |  \_fractional part
 |  |
 |  \_decimal point
 |
integer part
  • 当整数部分等于0但小数部分不是:

    double x = .123; // the same as writing 0.123
    
  • 当小数部分等于0但整数部分不是:

    double x = 123.; // the same as writing 123.0
    

*只是你的标准乘法。您只是将整数w乘以其整数部分等于0的十进制数.5135

答案 2 :(得分:1)

在最后一行中,您通过调用cx的构造函数VecVec(double x_=0, double y_=0, double z_=0)分配了Vec cx = Vec(w*.5135/h); 类型的新构造函数实例。

Vec cx = Vec(w*0.5135/h, 0, 0);

与:

相同
0

由于构造函数定义的参数的默认值。

浮点数不必以C ++中的assert(0.5135 == .5135); // True 开头。

w*.5135

所以w只是整数0.5135和双Order by的乘法。