首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我们将一个新值赋值给一个变量,那么旧值会发生什么呢?( C)

如果我们将一个新值赋值给一个变量,那么旧值会发生什么呢?( C)
EN

Stack Overflow用户
提问于 2021-12-31 08:14:32
回答 4查看 941关注 0票数 1

摘自Stephen著的“C编程(第4版)”一书

代码语言:javascript
运行
复制
// 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中也是如此吗?

EN

Stack Overflow用户

发布于 2021-12-31 11:59:05

变量就像值的占位符。如果将新值赋值给变量,则意味着用新值覆盖旧值,旧值将永远消失。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70540301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档