#include<stdio.h>
int main(void)
{
int x,y;
x=10;
y=x;
x=5;
printf("x=%d,y=%d\n",x,y);
return 0;
}
出力:X = 5、yが10Cには、Pythonのような変数の可変で不変な値の概念がありますか?
を=だから我々はy
は不変であると言うことができますか?
#include<stdio.h>
int main(void)
{
int x,y;
x=10;
y=x;
x=5;
printf("x=%d,y=%d\n",x,y);
return 0;
}
出力:X = 5、yが10Cには、Pythonのような変数の可変で不変な値の概念がありますか?
を=だから我々はy
は不変であると言うことができますか?
したがって、
y
は不変であると言えますか?
私たちはできますが、私たちは、あなたがこれだけを見つけるために少しを試してみる必要があり
:-)間違っていると思います。 y = 42
は、y
がではなく、であることを示唆していますが、新しいという値が作成され、その値がy
であり、古い値は変更されていない可能性があります。
これは、次のようなコードで割り引かすることができます:あなたは、むしろ、アクセスy
に使用両方方法はy
の基本となる値そのものが変更されたことを示す、新しい値を取得することがわかります
int y = 7; // we have a y
int *pY = &y; // and a pointer to it
y = 42; // change y
printf ("%d %d\n", y, *pY);
新しい値が作成され、y
が何らかの形でそれにリダイレクトされているよりも。
C自体にはにはという不変のデータがありません。これは実際にはconst
というキーワードです。しかし、それはPythonの不変性の概念とはかなり異なっています。
「const」と宣言されていない限り、Cの変数の値は変更できます。 – DyZ