-
【C言語の舞台裏】ソースコードが実行ファイル(.exe)になるまでの4つのステップ
私たちが書いたC言語のソースコード(.cファイル)は、ただのテキストファイルです。それなのに、なぜ「ビルド」や「コンパイル」をすると、クリックすれば動く実行ファイル(Windowsの.exeファイルなど)に変身するのでしょうか? この記事では、その魔法... -
【C言語の基本】変数のスコープと寿命を理解しよう!staticとexternの使い分け
C言語でプログラミングをしていると、「この変数は、どこからどこまで使えるんだろう?」「関数を呼び出すたびに、変数の値がリセットされてしまうのはなぜ?」といった疑問にぶつかることがあります。これらの疑問を解決する鍵が、**変数の「スコープ」と... -
【C言語入門】動的メモリ確保をマスター!mallocとfree関数の使い方を徹底解説
プログラミングをしていると、「ユーザーが入力した文字数に合わせて、ちょうど良いサイズの入れ物(メモリ)を用意したい」といった場面に遭遇することがあります。C言語では、そんな時に役立つ「動的メモリ確保」という仕組みが用意されています。 この... -
Python変数の参照とコピー:copyモジュールで予期せぬ変更を防ぐ
参照とは? Pythonでは、変数はデータそのものを直接格納しているわけではなく、メモリ上のデータが保存されている場所を指し示す「参照(リファレンス)」として機能します。 この仕組みは、データ型が**イミュータブル(変更不可能)**か、**ミュータブ... -
Pythonのタプル入門:リストとの違いと使い分け
Pythonには、複数の値をまとめて扱うためのデータ型がいくつかありますが、タプルはリストと非常によく似た役割を持つデータ型です。しかし、リストとは異なる重要な特徴があり、それぞれのデータ型には適した使い分けが存在します。 この記事では、タプル... -
Pythonの文字列とリスト:似ている点と決定的な違い
Pythonを学習していると、文字列とリストがいくつかの点で非常に似ていることに気づきます。どちらも複数の要素が順番に並んだシーケンスという共通点を持っており、同じような操作が可能です。 しかし、この二つにはプログラムの挙動を左右する決定的な違... -
Pythonリストの並び替え:sort()メソッドの基本と応用
Pythonのリストに格納された要素を、特定の順番(昇順や降順)に並べ替えたい場面は頻繁に発生します。そんなときに役立つのが、リストが持つ**sort()メソッド**です。 sort()メソッドは、リストの要素を自動で並べ替え、リスト自体を直接変更します。この... -
Pythonリストの基本メソッド:index, append, insert, removeの使い方
Pythonのリストは、単にデータを格納するだけでなく、そのデータを操作するための便利なメソッドを数多く持っています。メソッドとは、特定のデータ型(この場合はリスト)に属している、特別な関数のことです。 この記事では、リスト操作で特によく使われ... -
Pythonのコードを短くする累算代入演算子(+=など)の使い方
Pythonでプログラミングをしていると、ある変数の現在の値を使って計算し、その結果を同じ変数に再代入する、という操作は非常に頻繁に発生します。 score = 100 score = score + 5 # scoreに5を加える このようなコードを、より短く、より直感的に書くた... -
Pythonリストの便利なテクニック:in演算子と複数代入
Pythonでリストを扱う際、コードをより効率的で読みやすくするための便利なテクニックがいくつか存在します。この記事では、その中でも特に役立つ**in / not in演算子と複数代入**という2つの機能について解説します。 inとnot in演算子でリストの要素を調... -
【C++】静的メンバとは?クラス全体で共有する変数・関数 (static) の使い方
はじめに C++のクラスでは、通常、メンバ変数(データメンバ)はオブジェクトごとに個別の値を持ちます。Carクラスから car1 と car2 という2つのオブジェクトを作れば、それぞれの gas(ガソリン量)は別々に管理されます。 しかし、「このクラスから、合... -
【C++】コンストラクタの応用 | オブジェクトの配列の初期化とデフォルト引数
はじめに C++のコンストラクタは、オブジェクトの初期化を自動化する強力な機能ですが、その応用テクニックを学ぶことで、さらにコードを簡潔で柔軟にすることができます。 この記事では、コンストラクタの応用として、以下の2つの重要なテクニックを解説... -
【C++】コンストラクタのオーバーロード入門 | オブジェクトの作り方を複数用意する方法
はじめに C++のコンストラクタは、オブジェクトが生成される際に自動で呼び出され、メンバ変数の初期化を行います。通常の関数と同様に、この**コンストラクタもオーバーロード(overload)**することが可能です。 コンストラクタをオーバーロードすること... -
【C++】コンストラクタとは?オブジェクトの初期化を自動化する方法
はじめに C++のクラスからオブジェクトを作成する際、メンバ変数を一つずつ手動で設定するのは手間がかかり、また設定し忘れると、変数が不定な値(ごみデータ)のまま使われてしまう危険性があります。 このような初期化の手間とミスを防ぐために、C++に... -
【C++】関数にオブジェクトを渡す3つの方法(値渡し、ポインタ渡し、参照渡し)
はじめに C++で、ある関数の中でクラスのオブジェクトを利用したい場合、どのようにしてそのオブジェクトを関数に渡せばよいでしょうか? C++には、主に3つの方法があり、それぞれにメリットとデメリットが存在します。 値渡し (Pass by Value): オブジェ... -
【C++】インライン関数とは?クラス定義内でメンバ関数を実装する方法
はじめに C++のクラスでは、メンバ関数の「宣言(プロトタイプ)」をクラス定義内で行い、「実装(処理内容)」をクラスの外部で行うのが一般的です。しかし、処理が非常に短い関数の場合、宣言と実装を分けて書くのが少し冗長に感じられることがあります... -
【C++】private と public の違い | メンバへのアクセスを制限しデータを守る方法
はじめに C++のクラスで、全てのメンバを public(公開)にしてしまうと、クラスの外部から myCar.gas = -10.0; のように、意図しない不正な値を直接代入できてしまいます。これでは、オブジェクトの状態が簡単におかしくなり、バグの原因となります。 こ... -
Pythonでforループを使ってリストの全要素を処理する方法
Pythonのリストは複数の要素をまとめて管理できる便利なデータ構造ですが、その真価は**forループ**と組み合わせることで発揮されます。forループを使うと、リストに含まれる全ての要素に対して、一つずつ順番に同じ処理を適用することができます。 この記... -
Pythonでユーザーの入力をリストに保存する方法
プログラムを書いていると、ユーザーが入力した複数のデータをまとめて管理したい、という場面がよくあります。例えば、複数のペットの名前や、買い物リストの品目などです。 一つ一つのデータを別々の変数で管理するのは非常に非効率です。 # この方法は... -
Pythonリストの基本操作:要素の変更、追加、削除、長さの取得
Pythonのリストは、一度作成した後でも、その中身を自由に変更できる非常に柔軟なデータ構造です。これを「ミュータブル(変更可能)」な性質と呼びます。 この記事では、リストの長さを取得したり、要素を変更、追加、削除したりするための基本的な操作方... -
Pythonのリスト入門:インデックスとスライスでデータを自在に操る
Pythonプログラミングにおいて、最も基本的で強力なデータ構造の一つがリストです。リストは、複数の値を一つの変数にまとめて、順番に管理することができる非常に便利な機能です。 この記事では、リストの基本的な作成方法から、特定の要素を取り出すため... -
【C++】クラスの基本的な使い方まとめ(定義→オブジェクト作成→メンバアクセス)
はじめに C++のクラスは、オブジェクト指向プログラミングの基本となる「設計図」です。この設計図を実際にプログラムで活用するには、決まった手順を踏む必要があります。 この記事では、C++のクラスを利用するための基本的な流れを、以下の3つのステップ... -
【C++】クラス(class)とは?オブジェクト指向の基本を初心者向けに解説
はじめに オブジェクト指向プログラミング(OOP)の中心的な概念が「クラス (class)」です。クラスは、現実世界の「モノ」が持つ**状態(データ)と振る舞い(機能)**を、プログラムの中で一つのまとまりとして表現するための「設計図」と考えることがで... -
【C++/C言語】共用体 (union) の使い方 | 同じメモリ領域を共有する仕組み
はじめに C++の構造体(struct)は、全てのメンバ変数がそれぞれ個別のメモリ領域を持ちます。一方、「共用体 (union)」は、定義された全てのメンバ変数が、一つの同じメモリ領域を共有(共用)するという、特殊な性質を持っています。 これは、複数のデー... -
【C++】関数に構造体を渡す3つの方法(値渡し、ポインタ渡し、参照渡し)
はじめに C++で、関数の中で構造体のデータを利用したい場合、どのようにしてそのデータを関数に渡せばよいでしょうか? C++には、主に3つの方法があり、それぞれにメリットとデメリットがあります。 値渡し (Pass by Value): 構造体のコピーを作成して渡... -
【C++】構造体(struct)入門 | 型の定義から初期化、代入までを徹底解説
はじめに プログラミングで、「学生」の情報を管理したい場合、「学生番号(int型)」、「氏名(string型)」、「平均点(double型)」のように、複数の異なるデータが関連し合っています。これらの変数をバラバラに管理するのは非効率です。 C++の「構造... -
【C++】列挙型 (enum) の使い方 | 整数に分かりやすい名前を付ける方法
はじめに プログラムの中で、信号の色(赤・黄・青)や、曜日(日・月・火…)のように、互いに関連する一連の定数を扱いたい場合があります。これらの状態を、0, 1, 2 のような単なる整数(マジックナンバー)で管理すると、コードを読む人が「0 が赤だっ... -
【C++/C言語】typedef とは?既存のデータ型に別名を付けて分かりやすくする方法
はじめに C++やC言語でプログラミングをしていると、unsigned long long int のように、データ型名が非常に長くなってしまうことがあります。また、「年齢」を格納する int と、「ID」を格納する int のように、同じデータ型でもプログラム内での「意味」... -
【C++】子クラスから、オーバーライドされた親クラスのメンバ関数を呼び出す方法
はじめに C++の継承において、子クラス(派生クラス)で親クラス(基底クラス)のメンバ関数をオーバーライドすると、子クラスのオブジェクトからは、デフォルトで子クラス側の関数が呼び出されます。 しかし、時には「子クラス独自の処理に加えて、親クラ... -
【C++】継承したメンバ関数をオーバーライドする方法とvirtualキーワードの役割
はじめに C++の継承では、子クラス(派生クラス)は親クラス(基底クラス)の機能を引き継ぎます。しかし、時には「親クラスの機能の一部を、子クラス独自の振る舞いに**上書き(変更)**したい」という場面があります。 このように、親クラスから継承した...