1
  float f2,f1 = 123.125;

他们之间有什么不同?

  float f1 = 123.125,f2;

如果我将代码编写为

float f1,f2 = 123.125

该程序将有不同的结果

这是完整的程序

   float f2,f1 = 123.125;
    //float f1 = 123.125,f2;
    int i1,i2 = -150;

    i1 = f1; //floating to integer 
    NSLog(@"%f assigned to an int produces %i",f1,i1);

    f1 = i2; //integer to floating
    NSLog(@"%i assigned to a float produces %f",i2,f1);

    f1 = i2/100; //integer divided by integer
    NSLog(@"%i divied by 100 prouces %f",i2,f1);

    f2= i2/100.0; //integer divided by a float
    NSLog(@"%i divied by 100.0 produces %f",i2,f2);

    f2= (float)i2 /100; // type cast operator
    NSLog(@"(float))%i divided by 100 produces %f",i2,f2); 
4

2 回答 2

4
  float f2,f1 = 123.125;  // here you leave f2 uninitialized and f1 is initialized

  float f1 = 123.125,f2;  // here you leave f2 uninitialized and f1 is initialized

  float f1,f2 = 123.125;  // here you leave f1 uninitialized and f2 is initialized

如果你想初始化两个变量,你需要做

  float f1 = 123.125f, f2 = 123.125f;  

最好你这样写(为了可读性)

  float f1 = 123.125f;
  float f2 = 123.125f;  

注意“f”后缀,它表示它是一个浮点值而不是双精度值。

你也可以做一个定义

#define INITVALUE 123.125f

float f1 = INITVALUE;
float f2 = INITVALUE;
于 2012-07-20T07:27:06.673 回答
0

如果要初始化具有相同值的两个变量,请使用以下语法:

float f2 = f1 = 123.125f;

您正在使用的代码正在初始化一个变量而不是另一个,因此您看到的行为。

于 2012-07-20T07:10:23.643 回答