摘自Stephen著的“C编程(第4版)”一书
// Basic conversions in C
#include <stdio.h>
int main (void)
{
float f1 = 123.125, f2;
int i1, i2 = -150;
char c = 'a';
i1 = f1; // floating to integer conversion
printf("%f assigned to an int produces %i\n", f1, i1);
f1 = i2; // integer to floating conversion
printf("%i assigned to a float produces %f\n", i2, f1);
f1 = i2 / 100; // integer divided by integer
printf("%i divided by 100 produces %f\n", i2, f1);
f2 = i2 / 100.0; // integer divided by a float
printf("%i divided by 100.0 produces %f\n", i2, f2);
f2 = (float) i2 / 100; // type cast operator
printf("(float) %i divided by 100 produces %f\n", i2, f2);
return 0;
}我对编程很陌生,我试着从上面提到的书中学习如何用C语言编程。我看到了将整数转换为浮动的代码片段,反之亦然。我有点搞不懂到底发生了什么。
到目前为止,我理解的是:前几行(float f1 = 123.135, f2;和后面的两行)声明变量。
然后,行i1 = f1;将123.125的值分配给名为i1的变量,但由于i1是一个整数,因此它被截断为123。
下面是我的问题,在下一行f1 = i2;中,值-150被赋值给名为f1的变量,但是由于它是一个float,所以值被存储为浮点数,即-150.000000,但是123.125发生了什么呢?
这个值还存在于计算机内存的某个地方吗?如果是这样的话,我如何访问它?就像以前将该值赋值给f1时一样,我可以将其称为f1,但现在它不再被赋值给任何变量了,我能以某种方式引用它吗?
就像更广义的版本一样,如果我们将一个新值赋给一个变量,那么旧值会发生什么呢?
我曾在In python when we assign a new value to a variable what happens to the old one?上做过一次尝试,但在C中也是如此吗?
发布于 2021-12-31 11:59:05
变量就像值的占位符。如果将新值赋值给变量,则意味着用新值覆盖旧值,旧值将永远消失。
https://stackoverflow.com/questions/70540301
复制相似问题