私はあなたが
をしたい疑います
void address (int* x, int* y)
{
*x = *y;
}
あなたの質問の文言は非常に貧弱ですが。
私が誤解していて、本当に変数のアドレスを変更できると期待している場合は、できません。変数のアドレスは、変更可能な変数に付加された情報ではありません。変数のアドレスはです。それの名前は人間の利便性に過ぎません。
もっと答え
メインで、xとyは0x1234の発言で、int型であり、あなたは、あなたの関数を呼び出す0x1236。 xとyと呼ばれる2つの引数を持つことが起こりますが、これらは実際にmainのxとyとは関連していません。これらの引数はintへのポインタであり、2 intのアドレスを含みます。あなたのケースの幹線道路のxとy。
mains xとy main.xとmain.yを呼び出します。 funcs xとy func.xとfunc.yを呼び出します
func.x = 0x1234とfunc.y = 0x1236です。あなたはこれらを好む今までに何ができる、あなたは今func.xの元の値が失われ、それがfunc.y.の値を持つ
func.x = func.y
OKをしましたどちらも現在main.yのアドレスを持っています。ファイン、これは単にそれらが異なるもの
このように考え
でポイントになり、main.xのあらゆる側面を変更し、それらが指し示すものは変更されません周り
ジャグリングポインタをmain.yありません。 Cプログラムで
int x
4バイトの長さの変数を割り当て、私のアドレスを覚えているので、そのアドレスを「x」と呼んでいます。プログラミング(旧旧アセンブラなど)の非常に初期の頃では、など
thing at 0x1234 = 42;
thing at 0x1236 = thing at 0x1234 + 2;
を言ってプログラムする必要があります(あなたが実際にあなたには、いくつかのCPUの具体的な指示が、その同じものを持っていた「のことを」言いました) 、これは、その本当に難しい数字だけ
あなたは何をしたいですか? 'x'と' y'を同じアドレスにしますか? – yano
@yano。変数を移動せずに住所を変更しようとしているようです: –
"住所を変更する"とはどういう意味ですか?アドレスは物理的性質の抽象である。あなたはそれをフレーズとして変更することはあまりありません。もっとはっきりしてください。 –