equal_l2’s blog

※記載されている内容の正確性は保証しませんが、間違いを指摘していただければ直します。

C/C++ プログラミング

参照型の引数について

関数の引数を参照型でとることには、ポインタを使うのと比べていくつかの利点がある。 1.呼び出す際にアドレスを渡さなくていい 変数の交換を行う関数でaとbを交換することを考える。 その関数をswapとする。ポインタで実装したswap関数は、次のようにつかう…

参照を学ぶ

ポインタとよく一緒に語られる存在として、C++の参照がある。ただC++の参照というのはオブジェクトに別の名前を付けることらしく、実装にポインタを必ずしも使う必要はないらしい。 参照型変数 参照型の変数は、次のように宣言する。 参照先の型 &変数名 = …

ポインタを学ぶ(4) おまけ

あんまりポピュラーではないけど、ちょこちょこ出てくるテクニック。 (ポインタともあんまり関係ないけど) 条件分岐文の節約 0以上の整数入力に対して、1個づつ異なった値を、結果として返す処理を書いてみる。以下のコードで共通の変数として、整数入力を…

ポインタを学ぶ(3) ポインタの用途

ポインタの実際の用途について考える。 とはいっても、主なのはこの3つくらいだろう。 関数から関数外の値を操作する この用途でもっともよく知られているのは、swap関数の実装だ。 swap関数とは、2つの同じ型の引数を取り、その2つを交換する関数である。 (…

ポインタを学ぶ(2) 特別なポインタ

ポインタの実際の用途について学ぶ前に、少し特別なポインタについて学んでみる。 配列とポインタ C/C++の配列はポインタによって実装されている。 たとえば、int a[20]を宣言したとする。 これが宣言されると、メモリ上にint型の領域が20個連続した領域に確…

ポインタを学ぶ(1) ポインタの基本

巷のC初心者に立ちはだかる最後にして最大の壁ともいわれる、ポインタと言う概念。 いったいポインタとは何なのか、何に使うのか、学んでいく。 基本 Cにおけるポインタとは あるオブジェクト*1のメモリアドレスを値として持つ変数。 格納されているアドレス…