-
【C言語入門】自作関数の作り方!定義の基本からプロトタイプ宣言まで
C言語のプログラミングにおいて、同じような処理を何度も書いていると、コードが長くなり、読みにくくなってしまいます。そんな問題を解決するのが**「自作関数」**です。 処理を一つのまとまりとして関数化することで、コードの再利用性が高まり、プログ... -
【C言語の基本】グローバル変数とローカル変数の違いとは?変数の有効範囲(スコープ)を理解しよう
C言語で変数を宣言するとき、その変数がプログラムの**「どこからどこまで使えるか」という有効範囲が決まっています。この有効範囲のことをスコープ**と呼びます。 スコープを正しく理解しないと、「使えるはずの変数にアクセスできない」「意図しない場... -
【C言語の基本】メモリとアドレスとは?変数がコンピュータのどこに保存されるか見てみよう
私たちがC言語で int score = 100; のように変数を宣言するとき、その score という変数はコンピュータのどこに、どのように保存されているのでしょうか?この謎を解く鍵が**「メモリ」と「アドレス」**です。 この記事では、プログラムの舞台裏で動いてい... -
【C言語の最重要機能】ポインタの基本を徹底解説!初心者でも必ずわかる
C言語を学ぶ上で、誰もが一度は「難しい」と感じる概念、それが**「ポインタ」**です。しかし、ポインタを理解することで、C言語の真の力を引き出し、より高度で効率的なプログラミングが可能になります。 この記事では、そんなポインタの基本的な考え方か... -
ポインタ配列:複数の文字列をスマートに管理する
ポインタ配列とは、その名の通り、各要素がポインタである配列のことです。特に char* 型のポインタ配列は、複数の文字列をまとめて管理する際に非常に便利です。 通常の二次元配列 char str[4][20]; では、すべての要素が固定の長さ(この場合は20バイト... -
【C言語の重要概念】値渡しとアドレス渡しの違いとは?ポインタで引数を渡す方法を解説
C言語で関数を呼び出す際、引数として渡した変数の値が、関数の中で変更されても、呼び出し元の変数には影響がない場合があります。一方で、関数内での変更が、呼び出し元の変数に直接反映されることもあります。この違いを生むのが、C言語における引数の... -
【C言語入門】コマンドライン引数の渡し方!argc, argvを使いこなそう
C言語で作ったプログラムは、実行時に外部から情報を受け取ることができます。コマンドプロンプトやターミナルでプログラムを起動する際に、ファイル名やオプションなどを渡す、あの機能です。これを**「コマンドライン引数」**と呼びます。 この記事では... -
【C言語入門】ファイルの開き方と閉じ方!fopenとfcloseの基本を徹底解説
プログラムで扱ったデータを保存したり、外部のファイルから設定を読み込んだりするためには、ファイル入出力の知識が不可欠です。C言語では、ファイル操作を行うための様々な関数が用意されています。 この記事では、その最も基本的かつ重要な第一歩であ... -
【C言語入門】テキストファイルの読み込みと書き出し!fgetc/fputc, fgets/fputsを完全解説
プログラムが終了してもデータを保存しておきたい、設定ファイルを読み込みたい、実行結果をログとして残したい──。こうした要望を叶えるのがファイル入出力の機能です。C言語には、テキストファイルを扱うための基本的で強力な関数が多数用意されています... -
【C言語】バイナリファイルの読み書き入門!fread, fwrite, fseekを使いこなす
C言語でのファイル操作には、人間が読める文字を扱う「テキストファイル」の他に、コンピュータが直接解釈するデータを扱う**「バイナリファイル」**の操作があります。画像ファイル(.jpg)、音声ファイル(.mp3)、実行ファイル(.exe)などはすべてバイナリフ... -
【C言語の基本】構造体(struct)の使い方を徹底解説!typedefやビットフィールドも
C言語でプログラミングをしていると、intやcharといった基本的なデータ型だけでは、複雑な情報を表現しきれない場面が出てきます。例えば、ゲームのキャラクターの「名前、レベル、HP」のように、複数のデータをひとまとめにして扱いたい場合です。 そんな... -
【C言語】共用体(union)と列挙体(enum)の使い方を解説!メモリ節約と定数管理のテクニック
C言語には、構造体(struct)と似て非なる、少し特殊なデータ型を定義する方法として**「共用体(union)」と「列挙体(enum)」**があります。これらは特定の場面で使うと、コードをより効率的で読みやすくしてくれる強力なツールです。 今回は、この共用体と列... -
【C言語】#defineマクロの基本と注意点!定数と関数マクロを使いこなす
C言語の学習を進めると、#define という記述をよく見かけるようになります。これはマクロと呼ばれる、C言語の強力な機能の一つです。 マクロを使いこなせば、コードをより読みやすく、メンテナンスしやすくすることができます。しかし、便利な反面、思わぬ... -
【C言語中級編】プログラムをファイル分割する基本!ヘッダーファイルの作り方と分割コンパイル
プログラムの規模が大きくなってくると、全てのコードを一つのファイル(例えば main.c)に書き続けるのは大変です。コードは長くなり、目的の関数を探すのも一苦労、修正による影響範囲も分かりにくくなります。 そこで重要になるのが、機能ごとにプログ... -
【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++のクラスでは、メンバ関数の「宣言(プロトタイプ)」をクラス定義内で行い、「実装(処理内容)」をクラスの外部で行うのが一般的です。しかし、処理が非常に短い関数の場合、宣言と実装を分けて書くのが少し冗長に感じられることがあります...