C 语言中的类型转换有时您必须将一种数据类型的值转换为另一种类型。这称为类型转换隐式转换当您将一种类型的值分配给另一种类型的变量时编译器会自动进行隐式转换。例如如果您将一个int值分配给一个float类型代码语言cAI代码解释// 自动转换int to float float myFloat 9; printf(%f, myFloat); // 输出 9.000000如您所见编译器会自动将int值 9 转换为float值 9.000000。这可能是危险的因为您可能会在某些情况下失去对特定值的控制。尤其是如果相反的情况 - 以下示例会自动将float值 9.99 转换为int值 9代码语言cAI代码解释// 自动转换float to int int myInt 9.99; printf(%d, myInt); // 输出 90.99 发生了什么我们可能想要在我们的程序中使用这个数据所以要小心。您必须了解编译器在这些情况下的工作方式以避免意外结果。另一个例子如果您将两个整数 5 除以 2您知道结果是 2.5。正如您在此页面的开头所知如果您将sum存储为整数结果将只显示数字 2。因此将sum存储为float或double会更好对吗代码语言cAI代码解释float sum 5 / 2; printf(%f, sum); // 输出 2.000000为什么结果是 2.00000 而不是 2.5好吧因为 5 和 2 在除法中仍然是整数。在这种情况下您需要将整数值手动转换为浮点值参见下文。显式转换显式转换是通过在值之前放置类型括号()来手动完成的。考虑到我们上面示例中的问题我们现在可以得到正确的结果代码语言cAI代码解释// 手动转换: int to float float sum (float) 5 / 2; printf(%f, sum); // 输出 2.500000您也可以将类型放在变量前面代码语言cAI代码解释int num1 5; int num2 2; float sum (float) num1 / num2; printf(%f, sum); // 输出 2.500000由于您在上一章中学习了“小数精度”您可以通过删除多余的零如果您愿意使输出更清晰代码语言cAI代码解释int num1 5; int num2 2; float sum (float) num1 / num2; printf(%.1f, sum); // 输出 2.5C 语言中的常量如果您不想让其他人或自己更改现有变量的值可以使用const关键字。这将声明变量为“常量”这意味着它不可更改只读代码语言cAI代码解释const int myNum 15; // myNum 始终为 15 myNum 10; // 错误对只读变量 myNum 进行赋值当您拥有不太可能改变的值时应始终将变量声明为常量代码语言cAI代码解释const int minutesPerHour 60; const float PI 3.14;关于常量的注意事项当您声明一个常量变量时必须为其分配一个值代码语言cAI代码解释// 就像这样 const int minutesPerHour 60; // 然而这不起作用 const int minutesPerHour; minutesPerHour 60; // 错误常量在程序中可以提高代码的可读性并防止在程序中无意中更改重要的值。最后看完如果觉得有帮助欢迎点赞、收藏、关注
C 语言运算符详解
C 语言中的类型转换有时您必须将一种数据类型的值转换为另一种类型。这称为类型转换隐式转换当您将一种类型的值分配给另一种类型的变量时编译器会自动进行隐式转换。例如如果您将一个int值分配给一个float类型代码语言cAI代码解释// 自动转换int to float float myFloat 9; printf(%f, myFloat); // 输出 9.000000如您所见编译器会自动将int值 9 转换为float值 9.000000。这可能是危险的因为您可能会在某些情况下失去对特定值的控制。尤其是如果相反的情况 - 以下示例会自动将float值 9.99 转换为int值 9代码语言cAI代码解释// 自动转换float to int int myInt 9.99; printf(%d, myInt); // 输出 90.99 发生了什么我们可能想要在我们的程序中使用这个数据所以要小心。您必须了解编译器在这些情况下的工作方式以避免意外结果。另一个例子如果您将两个整数 5 除以 2您知道结果是 2.5。正如您在此页面的开头所知如果您将sum存储为整数结果将只显示数字 2。因此将sum存储为float或double会更好对吗代码语言cAI代码解释float sum 5 / 2; printf(%f, sum); // 输出 2.000000为什么结果是 2.00000 而不是 2.5好吧因为 5 和 2 在除法中仍然是整数。在这种情况下您需要将整数值手动转换为浮点值参见下文。显式转换显式转换是通过在值之前放置类型括号()来手动完成的。考虑到我们上面示例中的问题我们现在可以得到正确的结果代码语言cAI代码解释// 手动转换: int to float float sum (float) 5 / 2; printf(%f, sum); // 输出 2.500000您也可以将类型放在变量前面代码语言cAI代码解释int num1 5; int num2 2; float sum (float) num1 / num2; printf(%f, sum); // 输出 2.500000由于您在上一章中学习了“小数精度”您可以通过删除多余的零如果您愿意使输出更清晰代码语言cAI代码解释int num1 5; int num2 2; float sum (float) num1 / num2; printf(%.1f, sum); // 输出 2.5C 语言中的常量如果您不想让其他人或自己更改现有变量的值可以使用const关键字。这将声明变量为“常量”这意味着它不可更改只读代码语言cAI代码解释const int myNum 15; // myNum 始终为 15 myNum 10; // 错误对只读变量 myNum 进行赋值当您拥有不太可能改变的值时应始终将变量声明为常量代码语言cAI代码解释const int minutesPerHour 60; const float PI 3.14;关于常量的注意事项当您声明一个常量变量时必须为其分配一个值代码语言cAI代码解释// 就像这样 const int minutesPerHour 60; // 然而这不起作用 const int minutesPerHour; minutesPerHour 60; // 错误常量在程序中可以提高代码的可读性并防止在程序中无意中更改重要的值。最后看完如果觉得有帮助欢迎点赞、收藏、关注