问答详情
源自:2-9 强制类型转换

2-9有疑问

#include <stdio.h>

int main()

{

    double num = 2.5;//定义浮点型变量num并赋值为2.5

    printf("num的整数部分是%d\n",(int)num);  

    return 0;

}

这段代码是正确的。

但是下面这段

#include <stdio.h>

int main()

{

    double num = 2.5;//定义浮点型变量num并赋值为2.5

    int num =(int) num

    printf("num的整数部分是%d\n",num);  

    return 0;

}

是错的。

所以我有些问题:下面这段是我看过教程之后写出来的,但是是错的。

但我又不知道错在哪,我有几个猜测:

1、num这个变量名我用了两次,整型一次,双精度实数型一次。所以我想是不是因为变量名混乱所以报错,但是我学了一下其他人,他们把要输出的量定义成num1。但是我还是错了。

2、我看不太懂教程里说的(数据类型)(表达式)这个形式

表达式要加括号,但是在例子中的tempone没加括号,是因为字符不需要加括号吗?还是只有需要计算的公式才需要加括号?

求大佬耐心解答!!!

提问者:polx 2021-08-02 11:08

个回答

  • dustbin
    2021-08-02 11:22:39
    已采纳

    1. 一个变量名字num用两遍会混乱的,得重新定义一个不同的变量

    2. 表达式不用加括号,tempone只是变量名字,你可以把它当成a来看

  • dustbin
    2021-08-02 11:22:37

    1. 一个变量名字num用两遍会混乱的,得重新定义一个不同的变量

    2. 表达式不用加括号,tempone只是变量名字,你可以把它当成a来看