言葉をちゃんと整理して定義して扱えば解決しそうな。 変数とは 値を保持するオブジェクト(もの) 代入とは 既存の変数に値を設定すること。 ポインタとは 値の型の一種。どこかにある、何かの型のデータを指す。 「ポインタ」には「変数」という意味合いはありません。整数や浮動小数点型の値と同列に「ポインタ」があるのです。ので、整数に3を入れることが出来ないのと同様、ポインタになにかを入れることは出来ません。整数型の変数に3を代入することが出来るのと同じように、ポインタ型の変数に値を代入することは出来ます。(ここを勘違いしている人がしばしばいる) また、ポインタは型とデータの場所の情報を併せ持っている型です。「アドレス」は場所の情報でしかありませんから、ポインタ=アドレスという理解は正確ではありません。Cは静的な型付け(実行中に特定の値の型が無闇に変わったりはしない)言語ですから、型の情報はコンパイ