-
C言語の参照渡しとは?仕組みと使い方を実例つきで解説
C言語における参照渡し(pass by reference)とは、関数を呼び出す際に、変数そのものではなく変数のアドレス(メモリ上の場所)を引数として渡す手法のことです。ポインタを使ってアドレスを受け取ることで、呼び出された関数の中から元の変数の値を直接読み書きできるようになります。この記事では、参照渡しの基本的な考え方と、具体的なサンプルコードを通してその動作を解説します。 参照渡しのアルゴリズム まず、参照渡しがどのように動作するのかを、次のアルゴリズムで確認しましょう。ここでは、2つの変数の値を入れ替える処理を例にしています。 START Step 1: ポインタ変数を引数に持つ関数を宣
-
C言語のstrlen関数とは?文字列の長さを取得する方法を解説
strlen関数とは C言語の標準ライブラリ関数 size_t strlen(const char *str) は、引数に渡された文字列 str の長さを計算する関数です。戻り値には、文字列の終端を示すNULL文字(\0)は含まれません。 C言語では、文字型(char)の配列のことを「文字列」と呼びます。 文字列配列の宣言 文字列を格納するための配列は、以下のように宣言します。 char stringname [size]; たとえば「char a[50];」と宣言すると、最大50文字分の文字列を格納できる配列が作成されます。 文字列の初期化 文字列の初期化には、主に次の2つの方法があります。
-
C言語のstrcoll()関数とは?使い方・戻り値・サンプルコードを徹底解説
C言語の標準ライブラリ関数 int strcoll(const char *str1, const char *str2) は、文字列 str1 と str2 を比較するための関数です。比較結果は、現在設定されているロケール(locale)の LC_COLLATE 設定に依存します。 C言語では、文字の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(文字配列)の宣言は、以下のように行います。 char stringname [size]; たとえば char string[50]; と記述すれば、最大50文字分の長さを持つ文字列が定義できます。 文字列の初期化 単一文字定数を
-
C言語のstrspn()関数とは?使い方とサンプルコードをわかりやすく解説
C言語の標準ライブラリ関数 size_t strspn(const char *str1, const char *str2) は、str1 の先頭から、str2 に含まれる文字だけで構成されている部分の長さを計算する関数です。 なお、C言語では文字の配列のことを「文字列」と呼びます。まずは文字列の基本的な扱い方を確認しておきましょう。 文字列(配列)の宣言 文字列(char型の配列)は、次のように宣言します。 char stringname[size]; 例えば、次のように書くと、50文字分の長さを持つ文字列が定義されます。 char string[50]; 文字列の初期化 文字列の初期
-
C言語のstrcpy()関数とは?基本構文と使い方をわかりやすく解説
C言語のライブラリ関数 char *strcpy(char *dest, const char *src) は、src が指し示す文字列を dest にコピーするための関数です。 C言語では、文字の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(文字配列)の宣言は、以下の形式で行います。 char stringname[size]; 例えば char string[50]; と宣言すると、最大50文字の文字列を格納できる配列が確保されます。 文字列の初期化 文字列の初期化には、主に以下の2つの方法があります。 1. 文字定数を使う方法 char string[10] = {H,
-
C言語のstrcat関数とは?文字列連結の基本と使い方を解説
C言語の標準ライブラリ関数 char *strcat(char *dest, const char *src) は、src が指す文字列を、dest が指す文字列の末尾へ連結(追記)します。C言語では、文字型(char型)の配列を「文字列」として扱い、文字列の末尾には終端を表すヌル文字「\0」が必要です。文字列の宣言文字列(文字型配列)の宣言は、次のように行います。char stringname[size];たとえば char string[50]; と宣言すれば、最大50文字の文字列を格納できます。文字列の初期化方法1:文字定数を使うchar string[10] = {H, e, l, l
-
C言語のstrncat()関数とは?指定した文字数だけ文字列を連結する方法を解説
C言語の標準ライブラリ関数 char *strncat(char *dest, const char *src, size_t n) は、srcが指し示す文字列の先頭から最大n文字を取り出し、destが指し示す文字列の末尾に連結(追加)するための関数です。 なお、C言語では文字型(char型)の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(char型配列)は、次の形式で宣言します。 char 文字列名[サイズ]; たとえば「char string[50];」と記述すれば、50文字分の長さを持つ文字列が確保されます。 文字列の初期化 文字列の初期化には、主に次の2つの方法がありま
-
C言語のstrcmp()関数とは?文字列比較の基本と使い方を徹底解説
C言語の標準ライブラリ関数 int strcmp(const char *str1, const char *str2) は、ポインタ str1 が指し示す文字列と、str2 が指し示す文字列を比較するための関数です。C言語において、文字型の配列は「文字列」と呼ばれます。まずは文字列の基本的な扱い方から確認していきましょう。文字列の宣言文字列(文字配列)の宣言は以下のように行います。char stringname [size];例えば、char string[50]; と宣言すれば、最大50文字の長さを持つ文字列を格納できます。文字列の初期化文字列の初期化には、主に次の2つの方法があります。1
-
C言語のstrncmp関数とは?使い方とサンプルコードをわかりやすく解説
strncmp関数とはC標準ライブラリの関数 int strncmp(const char *str1, const char *str2, size_t n) は、str1 と str2 の先頭から最大 n バイト(n文字)を比較する関数です。C言語では、文字の配列のことを「文字列」と呼びます。文字列の宣言文字列(配列)を宣言するための基本的な構文は次のとおりです。char stringname [size];たとえば char string[50]; と宣言すると、長さ50文字分の文字列を格納できる領域が確保されます。文字列の初期化文字列の初期化には、主に以下の2つの方法があります。1文字
-
C言語のstrstr()関数とは?文字列検索の使い方とサンプルコード解説
C言語の標準ライブラリ関数 char *strstr(const char *haystack, const char *needle) は、文字列 haystack(検索対象となる主文字列)の中から、部分文字列 needle(検索したい文字列)が最初に現れる位置を探すための関数です。なお、終端の \0(ヌル文字)は比較の対象になりません。 C言語では、文字型の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(文字配列)を宣言する構文は以下のとおりです。 char 文字列名 [サイズ]; 例えば「char string[50];」と宣言すれば、50文字分の長さを持つ文字列が定義されま
-
【C言語】ポインタを使った文字列操作の基本とサンプルプログラム解説
C言語において、文字(char型)の配列として表現されるデータを文字列と呼びます。文字列の末尾には終端文字「\0」が自動的に配置され、これが文字列の終わりを示す目印となります。 文字列の宣言 文字列(char型配列)を宣言する基本構文は以下のとおりです。 char 文字列名 [サイズ]; たとえば、次のように書くと50文字分の領域を持つ文字列を宣言できます。 char string[50]; 文字列の初期化 文字列の初期化には、主に次の2つの方法があります。 ① 1文字ずつ文字定数で指定する方法 char string[10] = {H, e, l, l, o, \0}; ② 文字列定数(文字
-
C言語の構造体配列とは?宣言方法とサンプルコードをわかりやすく解説
構造体配列とはC言語における構造体の配列とは、異なるデータ型の変数をひとつの名前のもとにまとめて管理できるコレクションのことです。複数の関連するデータを扱う際に非常に便利な機能です。構造体宣言の一般形構造体の宣言は、以下の形式で行います。struct タグ名{ データ型 メンバ1; データ型 メンバ2; データ型 メンバn;};ここで、struct はキーワード、タグ名 は構造体の名前を指定します。メンバ1、メンバ2 などは、構造体を構成するデータ項目を表し
-
C言語の構造体内で配列を使う方法をわかりやすく解説
C言語における「構造体内の配列」とは、異なるデータ型を持つ複数の変数を、ひとつの名前のもとにまとめて管理できる仕組みです。構造体の中に配列メンバーを定義することで、関連するデータを効率的かつ整理された形で扱うことができます。 構造体宣言の一般形式 構造体の宣言は、以下のように記述します。 struct tagname{ datatype member1; datatype member2; datatype member n; }; struct は、構造体を定義するためのキーワードです。 tagname は、構造体の名前(タグ名)を指定します。 member1、me
-
C言語の構造体へのポインタとは?宣言・アクセス方法を実例付きで解説
C言語において、構造体へのポインタとは、構造体全体の先頭アドレスを格納するポインタのことです。構造体へのポインタを使うことで、連結リスト(リンクリスト)、木構造(ツリー)、グラフといった複雑なデータ構造を効率的に扱えるようになります。また、ポインタ経由で構造体のメンバにアクセスする際には、アロー演算子(->)と呼ばれる特殊な演算子を使用します。構造体へのポインタの宣言C言語で構造体へのポインタを宣言する書式は以下の通りです。struct tagname *ptr;具体例として、student構造体へのポインタは次のように宣言します。struct student *s;メンバへのアクセス方
-
【C言語】構造体へのポインタと動的メモリ割り当て(malloc)の使い方を解説
構造体へのポインタとは? 構造体へのポインタとは、構造体全体の先頭アドレスを保持するポインタのことです。 連結リスト、木構造(ツリー)、グラフといった複雑なデータ構造を実装する際に不可欠な概念であり、C言語プログラミングの中核を担う重要な仕組みの一つです。 また、ポインタから構造体のメンバにアクセスする際には、アロー演算子(->)と呼ばれる特殊な演算子を使用します。 宣言の方法 C言語で構造体へのポインタを宣言する構文は以下の通りです。 struct tagname *ptr; 記述例: struct student *s; メンバへのアクセス ポインタが指す構造体のメンバには、次の形式
-
【C言語】構造体の個々のメンバーを関数の引数として渡す方法をわかりやすく解説
構造体の値を関数へ渡す3つの方法 C言語では、構造体の値をある関数から別の関数へ受け渡す方法として、主に次の3つがあります。 個々のメンバーを引数として関数に渡す 構造体全体を引数として関数に渡す 構造体のアドレス(ポインタ)を引数として関数に渡す 本記事では、この中から「構造体の個々のメンバーを引数として関数に渡す方法」に焦点を当てて解説します。 個々のメンバーを渡す仕組み 構造体の各メンバーを個別に渡す場合のポイントは以下の2点です。 関数呼び出し時に、各メンバーをそれぞれ独立した引数として渡します。 関数側(仮引数)では、それらを通常の変数として個別に受け取ります。 この方法は
-
【C言語】構造体全体を引数として関数に渡す方法を徹底解説
はじめに:構造体を受け渡す3つの方法 C言語において、構造体の値をある関数から別の関数へ渡す方法は、主に次の3つがあります。 各メンバーを個別に引数として渡す 構造体全体を1つの引数として渡す 構造体のアドレス(ポインタ)を引数として渡す 本記事では、この中から「構造体全体を引数として関数に渡す方法」について、具体的なサンプルコードとともに詳しく解説します。 構造体全体を渡す場合のポイント 関数を呼び出す際、構造体変数の名前をそのまま引数に指定します。 関数側では、同じ構造体型の別の変数でその値を受け取ります。 注意点として、呼び出しのたびに構造体全体のコピーが新たに作成されるため、メモ
-
C言語で関数の引数として構造体のアドレスを渡す方法を解説
構造体の値を受け渡す3つの方法 C言語では、構造体の値をある関数から別の関数へ渡す方法として、主に以下の3つが挙げられます。 構造体の各メンバーを個別の引数として渡す 構造体全体を引数として渡す 構造体のアドレスを引数として渡す 本記事では、3つ目の「構造体のアドレスを引数として関数に渡す方法」について詳しく解説します。 構造体のアドレスを渡す仕組み 構造体のアドレスを引数として渡す場合、処理は以下のような流れで行われます。 呼び出し側では、構造体のアドレスを引数として関数に渡します。 関数側では、仮引数として「構造体へのポインタ」を宣言し、渡されたアドレスを受け取ります。 関数内では
-
C言語のローカルスコープにおける構造体とは?基本から実例まで解説
構造体(structure)とは、int・char・float など異なるデータ型を持つ複数の変数を、ひとつの名前のもとにまとめたデータ構造です。関連するデータをグループ化できるため、プログラムの可読性と管理性が向上します。 構造体宣言の一般的な形式 構造体は次のように宣言します。 struct タグ名{ データ型 メンバ1; データ型 メンバ2; データ型 メンバn; }; struct … 構造体を定義するためのキーワードです。 タグ名 … 構造
-
C言語の共用体(union)とは?構文・宣言方法・使い方をわかりやすく解説
共用体(union)とはC言語における共用体(union)とは、異なるデータ型を持つ複数の変数が、同一のメモリ領域を共有するための仕組みです。構造体(struct)が各メンバに個別のメモリを割り当てるのに対し、共用体ではすべてのメンバが同じメモリを参照するため、メモリの節約に役立ちます。共用体の構文共用体を定義する基本的な構文は以下のとおりです。union タグ名{ データ型 メンバ1; データ型 メンバ2; ---- ---- データ型 メンバn; };定義例次の例では、int型・float型・char型の3つのメンバを持つ「sample」という名前の