mori– Author –
-
C言語樹林
【C言語の重要概念】値渡しとアドレス渡しの違いとは?ポインタで引数を渡す方法を解説
C言語で関数を呼び出す際、引数として渡した変数の値が、関数の中で変更されても、呼び出し元の変数には影響がない場合があります。一方で、関数内での変更が、呼び出し元の変数に直接反映されることもあります。この違いを生むのが、C言語における引数の... -
C言語樹林
【C言語入門】コマンドライン引数の渡し方!argc, argvを使いこなそう
C言語で作ったプログラムは、実行時に外部から情報を受け取ることができます。コマンドプロンプトやターミナルでプログラムを起動する際に、ファイル名やオプションなどを渡す、あの機能です。これを**「コマンドライン引数」**と呼びます。 この記事では... -
C言語樹林
【C言語入門】ファイルの開き方と閉じ方!fopenとfcloseの基本を徹底解説
プログラムで扱ったデータを保存したり、外部のファイルから設定を読み込んだりするためには、ファイル入出力の知識が不可欠です。C言語では、ファイル操作を行うための様々な関数が用意されています。 この記事では、その最も基本的かつ重要な第一歩であ... -
C言語樹林
【C言語入門】テキストファイルの読み込みと書き出し!fgetc/fputc, fgets/fputsを完全解説
プログラムが終了してもデータを保存しておきたい、設定ファイルを読み込みたい、実行結果をログとして残したい──。こうした要望を叶えるのがファイル入出力の機能です。C言語には、テキストファイルを扱うための基本的で強力な関数が多数用意されています... -
C言語樹林
【C言語】バイナリファイルの読み書き入門!fread, fwrite, fseekを使いこなす
C言語でのファイル操作には、人間が読める文字を扱う「テキストファイル」の他に、コンピュータが直接解釈するデータを扱う**「バイナリファイル」**の操作があります。画像ファイル(.jpg)、音声ファイル(.mp3)、実行ファイル(.exe)などはすべてバイナリフ... -
C言語樹林
【C言語の基本】構造体(struct)の使い方を徹底解説!typedefやビットフィールドも
C言語でプログラミングをしていると、intやcharといった基本的なデータ型だけでは、複雑な情報を表現しきれない場面が出てきます。例えば、ゲームのキャラクターの「名前、レベル、HP」のように、複数のデータをひとまとめにして扱いたい場合です。 そんな... -
C言語樹林
【C言語】共用体(union)と列挙体(enum)の使い方を解説!メモリ節約と定数管理のテクニック
C言語には、構造体(struct)と似て非なる、少し特殊なデータ型を定義する方法として**「共用体(union)」と「列挙体(enum)」**があります。これらは特定の場面で使うと、コードをより効率的で読みやすくしてくれる強力なツールです。 今回は、この共用体と列... -
C言語樹林
【C言語】#defineマクロの基本と注意点!定数と関数マクロを使いこなす
C言語の学習を進めると、#define という記述をよく見かけるようになります。これはマクロと呼ばれる、C言語の強力な機能の一つです。 マクロを使いこなせば、コードをより読みやすく、メンテナンスしやすくすることができます。しかし、便利な反面、思わぬ... -
C言語樹林
【C言語中級編】プログラムをファイル分割する基本!ヘッダーファイルの作り方と分割コンパイル
プログラムの規模が大きくなってくると、全てのコードを一つのファイル(例えば main.c)に書き続けるのは大変です。コードは長くなり、目的の関数を探すのも一苦労、修正による影響範囲も分かりにくくなります。 そこで重要になるのが、機能ごとにプログ... -
C言語樹林
【C言語の舞台裏】ソースコードが実行ファイル(.exe)になるまでの4つのステップ
私たちが書いたC言語のソースコード(.cファイル)は、ただのテキストファイルです。それなのに、なぜ「ビルド」や「コンパイル」をすると、クリックすれば動く実行ファイル(Windowsの.exeファイルなど)に変身するのでしょうか? この記事では、その魔法... -
C言語樹林
【C言語の基本】変数のスコープと寿命を理解しよう!staticとexternの使い分け
C言語でプログラミングをしていると、「この変数は、どこからどこまで使えるんだろう?」「関数を呼び出すたびに、変数の値がリセットされてしまうのはなぜ?」といった疑問にぶつかることがあります。これらの疑問を解決する鍵が、**変数の「スコープ」と... -
C言語樹林
【C言語入門】動的メモリ確保をマスター!mallocとfree関数の使い方を徹底解説
プログラミングをしていると、「ユーザーが入力した文字数に合わせて、ちょうど良いサイズの入れ物(メモリ)を用意したい」といった場面に遭遇することがあります。C言語では、そんな時に役立つ「動的メモリ確保」という仕組みが用意されています。 この... -
C++樹林
Python変数の参照とコピー:copyモジュールで予期せぬ変更を防ぐ
参照とは? Pythonでは、変数はデータそのものを直接格納しているわけではなく、メモリ上のデータが保存されている場所を指し示す「参照(リファレンス)」として機能します。 この仕組みは、データ型が**イミュータブル(変更不可能)**か、**ミュータブ... -
C++樹林
Pythonのタプル入門:リストとの違いと使い分け
Pythonには、複数の値をまとめて扱うためのデータ型がいくつかありますが、タプルはリストと非常によく似た役割を持つデータ型です。しかし、リストとは異なる重要な特徴があり、それぞれのデータ型には適した使い分けが存在します。 この記事では、タプル... -
C++樹林
Pythonの文字列とリスト:似ている点と決定的な違い
Pythonを学習していると、文字列とリストがいくつかの点で非常に似ていることに気づきます。どちらも複数の要素が順番に並んだシーケンスという共通点を持っており、同じような操作が可能です。 しかし、この二つにはプログラムの挙動を左右する決定的な違... -
C++樹林
Pythonリストの並び替え:sort()メソッドの基本と応用
Pythonのリストに格納された要素を、特定の順番(昇順や降順)に並べ替えたい場面は頻繁に発生します。そんなときに役立つのが、リストが持つ**sort()メソッド**です。 sort()メソッドは、リストの要素を自動で並べ替え、リスト自体を直接変更します。この... -
C++樹林
Pythonリストの基本メソッド:index, append, insert, removeの使い方
Pythonのリストは、単にデータを格納するだけでなく、そのデータを操作するための便利なメソッドを数多く持っています。メソッドとは、特定のデータ型(この場合はリスト)に属している、特別な関数のことです。 この記事では、リスト操作で特によく使われ... -
C++樹林
Pythonのコードを短くする累算代入演算子(+=など)の使い方
Pythonでプログラミングをしていると、ある変数の現在の値を使って計算し、その結果を同じ変数に再代入する、という操作は非常に頻繁に発生します。 score = 100 score = score + 5 # scoreに5を加える このようなコードを、より短く、より直感的に書くた... -
C++樹林
Pythonリストの便利なテクニック:in演算子と複数代入
Pythonでリストを扱う際、コードをより効率的で読みやすくするための便利なテクニックがいくつか存在します。この記事では、その中でも特に役立つ**in / not in演算子と複数代入**という2つの機能について解説します。 inとnot in演算子でリストの要素を調... -
C++樹林
【C++】静的メンバとは?クラス全体で共有する変数・関数 (static) の使い方
はじめに C++のクラスでは、通常、メンバ変数(データメンバ)はオブジェクトごとに個別の値を持ちます。Carクラスから car1 と car2 という2つのオブジェクトを作れば、それぞれの gas(ガソリン量)は別々に管理されます。 しかし、「このクラスから、合... -
C++樹林
【C++】コンストラクタの応用 | オブジェクトの配列の初期化とデフォルト引数
はじめに C++のコンストラクタは、オブジェクトの初期化を自動化する強力な機能ですが、その応用テクニックを学ぶことで、さらにコードを簡潔で柔軟にすることができます。 この記事では、コンストラクタの応用として、以下の2つの重要なテクニックを解説... -
C++樹林
【C++】コンストラクタのオーバーロード入門 | オブジェクトの作り方を複数用意する方法
はじめに C++のコンストラクタは、オブジェクトが生成される際に自動で呼び出され、メンバ変数の初期化を行います。通常の関数と同様に、この**コンストラクタもオーバーロード(overload)**することが可能です。 コンストラクタをオーバーロードすること... -
C++樹林
【C++】コンストラクタとは?オブジェクトの初期化を自動化する方法
はじめに C++のクラスからオブジェクトを作成する際、メンバ変数を一つずつ手動で設定するのは手間がかかり、また設定し忘れると、変数が不定な値(ごみデータ)のまま使われてしまう危険性があります。 このような初期化の手間とミスを防ぐために、C++に... -
C++樹林
【C++】関数にオブジェクトを渡す3つの方法(値渡し、ポインタ渡し、参照渡し)
はじめに C++で、ある関数の中でクラスのオブジェクトを利用したい場合、どのようにしてそのオブジェクトを関数に渡せばよいでしょうか? C++には、主に3つの方法があり、それぞれにメリットとデメリットが存在します。 値渡し (Pass by Value): オブジェ... -
C++樹林
【C++】インライン関数とは?クラス定義内でメンバ関数を実装する方法
はじめに C++のクラスでは、メンバ関数の「宣言(プロトタイプ)」をクラス定義内で行い、「実装(処理内容)」をクラスの外部で行うのが一般的です。しかし、処理が非常に短い関数の場合、宣言と実装を分けて書くのが少し冗長に感じられることがあります... -
C++樹林
【C++】private と public の違い | メンバへのアクセスを制限しデータを守る方法
はじめに C++のクラスで、全てのメンバを public(公開)にしてしまうと、クラスの外部から myCar.gas = -10.0; のように、意図しない不正な値を直接代入できてしまいます。これでは、オブジェクトの状態が簡単におかしくなり、バグの原因となります。 こ... -
Python樹林
Pythonでforループを使ってリストの全要素を処理する方法
Pythonのリストは複数の要素をまとめて管理できる便利なデータ構造ですが、その真価は**forループ**と組み合わせることで発揮されます。forループを使うと、リストに含まれる全ての要素に対して、一つずつ順番に同じ処理を適用することができます。 この記... -
Python樹林
Pythonでユーザーの入力をリストに保存する方法
プログラムを書いていると、ユーザーが入力した複数のデータをまとめて管理したい、という場面がよくあります。例えば、複数のペットの名前や、買い物リストの品目などです。 一つ一つのデータを別々の変数で管理するのは非常に非効率です。 # この方法は... -
Python樹林
Pythonリストの基本操作:要素の変更、追加、削除、長さの取得
Pythonのリストは、一度作成した後でも、その中身を自由に変更できる非常に柔軟なデータ構造です。これを「ミュータブル(変更可能)」な性質と呼びます。 この記事では、リストの長さを取得したり、要素を変更、追加、削除したりするための基本的な操作方... -
Python樹林
Pythonのリスト入門:インデックスとスライスでデータを自在に操る
Pythonプログラミングにおいて、最も基本的で強力なデータ構造の一つがリストです。リストは、複数の値を一つの変数にまとめて、順番に管理することができる非常に便利な機能です。 この記事では、リストの基本的な作成方法から、特定の要素を取り出すため...