C++

 Computer >> コンピューター >  >> プログラミング >> C++
  1. C/C++の文字列リテラルの型とは?6つの種類と使い方をわかりやすく解説

    文字列リテラル(string literal)とは、ダブルクォート「 」で囲まれた一連の文字のことを指します。また、ワイド文字列リテラルには必ず接頭辞「L」が付きます。 文字列リテラルの種類 C++11以降、文字列リテラルには接頭辞によって複数の型が用意されています。それぞれの種類と説明は以下の通りです。 番号文字列リテラルと説明 1 接頭辞なしの文字列リテラル(型:const char[]) 2L ワイド文字列リテラル(型:const wchar_t[]) 3u8 UTF-8でエンコードされた文字列リテラル(型:const char8_t[]、C++20以降) 4u UTF-16でエ

  2. 【C/C++】new/deleteとmalloc/freeの違いを徹底解説!メモリ管理の基本

    C/C++には、実行時にメモリを動的に確保・解放するための仕組みとして、C++のnew/delete演算子と、C言語由来のmalloc()/free()関数があります。どちらもヒープ領域を扱う点は共通していますが、性質や使い方には重要な違いがあります。本記事では、それぞれの基本的な使い方をサンプルコードとともに紹介し、最後に両者の主な相違点を比較表で整理します。 new / delete(C++) new演算子は、ヒープ領域へのメモリ割り当てを要求します。十分な空きメモリが存在すれば、確保したメモリを初期化してポインタ変数に結び付け、そのアドレスを返します。 delete演算子は、newで確

  3. C/C++のmalloc()とfree()の仕組みを徹底解説!動的メモリ確保と解放の基本

    C言語やC++では、プログラムの実行時に必要なメモリを動的に確保・解放できます。その中核を担うのが標準ライブラリの malloc() と free() です。この記事では、両関数の基本的な仕組み、書式、そして具体的な使用例をわかりやすく解説します。 malloc()とは? malloc() は、指定されたサイズ(バイト数)のメモリをヒープ領域に動的に確保し、確保したメモリの先頭バイトへのポインタを返す関数です。メモリの確保に失敗した場合には、NULLポインタが返されます。 C言語における malloc() の基本構文は以下のとおりです。 pointer_name = (cast-type*)

  4. Visual Studio 2015で利用できるC++11の主な新機能をわかりやすく解説

    C++11とは C++11は、標準C++言語のバージョンのひとつです。2011年8月12日に国際標準化機構(ISO)によって承認され、その後C++14、C++17へと規格が更新されていきました。C++11ではコア言語に多くの機能追加が行われており、Visual C++ではこれらの機能の大多数が実装されています。 ここでは、Visual Studio 2015で利用できる代表的なC++11機能を紹介します。 Visual Studio 2015で使える主なC++11機能 nullptr(ヌルポインタリテラル) 以前はヌルポインタを表すのにゼロが使われていましたが、これには整数値への暗黙的な変

  5. C/C++におけるユニオン(共用体)の目的と使い方

    ユニオン(共用体)は、ユーザーが定義できるデータ型の一つです。ユニオンの最大の特徴は、すべてのメンバーが同一のメモリ領域を共有するという点にあります。そのため、ユニオン全体のサイズは、メンバーの中で最も大きい型のサイズによって決まります。2つ以上のメンバーで同じメモリ領域を使い回したい場合には、ユニオンが最適な選択となります。ユニオンは構造体(struct)とよく似ており、変数の宣言方法も構造体とほぼ同じです。C言語では「union」というキーワードを使用してユニオンを定義します。C言語におけるユニオンの構文union union_name { member definition; }

  6. C/C++における三項演算子「? :」の使い方と仕組みを解説

    三項演算子とは?「?」演算子は、3つのオペランド(被演算子)を必要とすることから三項演算子と呼ばれています。表記は「? :」という形で、「条件演算子」とも呼ばれます。この演算子を使うことで、コードの行数を削減でき、処理の効率も向上します。基本構文C言語における三項演算子の構文は以下の通りです。式1 ? 式2 : 式3まず式1が評価され、その結果が真(非ゼロ)であれば式2が、偽(ゼロ)であれば式3が実行されます。サンプルコード1#include <stdio.h> int main() { int a = -1; double b = 26.4231; in

  7. C言語における構造体(struct)と共用体(union)の違いとは?

    C言語には、複数のデータをひとまとめに扱うためのユーザー定義型として「構造体(structure)」と「共用体(union)」があります。どちらも異なる型のデータを組み合わせられる点で似ていますが、メモリの扱い方に大きな違いがあります。本記事では、それぞれの特徴と使い方、そして両者の違いについて詳しく解説します。 構造体(Structure)とは 構造体は、異なるデータ型を1つの型にまとめるためのユーザー定義データ型です。int型やfloat型、char型など、さまざまな型のメンバー変数を複数持つことができます。C言語では「struct」というキーワードを使って構造体を定義し、各メンバーにはド

  8. C/C++の左シフト・右シフト演算子の使い方を解説

    C言語やC++には、ビット列を左右に移動させる「シフト演算子」が用意されています。シフト演算は、2のべき乗による乗算・除算を高速に行いたい場合などに活用される重要な演算です。この記事では、左シフト演算子(<<)と右シフト演算子(>>)の基本的な動作を、サンプルコードと実行結果とともにわかりやすく解説します。 左シフト演算子(<<)とは 左シフト演算子では、左オペランドの値が、右オペランドで指定されたビット数だけ左へ移動します。空いた下位のビットには0が埋められます。 たとえば「y << 2」と書くと、yのビット列が2ビット分だけ左にずれます。これ

  9. C/C++で文字列がint(整数)かどうかを判定する方法

    C/C++で文字列が整数(int)として妥当かどうかを判定する方法はいくつかあります。その中でも手軽なのが、標準ライブラリのisdigit()関数を使って文字列を1文字ずつチェックする方法です。ここでは、C++で文字列が整数を含んでいるかどうかを判定する具体例を紹介します。サンプルコード#include<iostream> #include<string.h> using namespace std; int main() { char str[] = "3257fg"; for (int i = 0; i < strlen

  10. C/C++における多次元配列の定義方法を徹底解説

    配列とは、同じ型の要素を連続したメモリ領域に格納したデータ構造です。メモリ上では、最も小さいアドレスが先頭の要素に対応し、最も大きいアドレスが末尾の要素に対応します。配列のインデックスは 0 から始まり、配列サイズ − 1 で終わる点に注意してください。また、配列のサイズは必ず 0 より大きい整数である必要があります。配列のインデックスとサイズの関係具体的な例を見てみましょう。配列サイズ = 10 の場合 先頭のインデックス = 0 末尾のインデックス = 配列サイズ - 1 = 10 - 1 = 9つまり、サイズ10の配列にアクセスできるインデックスは 0〜9 の合計10個ということになりま

  11. C++で例外をスローする方法|throwとtry-catchの使い方を解説

    例外処理(Exception Handling)は、プログラムの実行中に発生する予期しないエラーや異常な状態に対処するための仕組みです。C++では、try-catchブロックを使用してコードを保護し、問題が発生してもプログラムが異常終了しないように制御できます。 例外はコードブロック内の任意の場所からスローすることが可能で、その際に使用するのが「throw」キーワードです。throw文が実行されると、その時点で通常の処理は中断され、対応するcatchブロックへ制御が移ります。 C++におけるthrowの使用例 以下は、C++でthrowを使って例外をスローする具体例です。このプログラムでは、

  12. C++ですべての例外をキャッチする方法を解説|catch(...)の使い方

    例外とは、プログラムの実行時に発生する問題のことです。実行時(ランタイム)にスローされるイベントであり、適切に処理することで、例外が発生した後でもプログラムを継続して実行できます。このような例外に対処する仕組みが「例外処理」であり、try-catchブロックを使用することでコードを保護できます。catchブロックは、あらゆる型の例外をキャッチするために使用されます。例外を捕捉するには「catch」というキーワードを使います。特に、catch(...) のように省略記号(...)を記述すると、スローされた例外の型に関わらず、すべての例外をキャッチすることが可能です。以下は、C++ですべての例外を

  13. C++とC#はどちらが速い?パフォーマンスと特徴を徹底比較

    プログラミング言語を選ぶ際、「処理速度」は多くの開発者が気になるポイントです。本記事では、C++とC#という2つの代表的なオブジェクト指向言語を取り上げ、それぞれの特徴や違い、パフォーマンスの差について詳しく解説します。 C++とは C++は中級レベル(ミドルレベル)のプログラミング言語で、1979年にビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発されました。C言語を拡張した形であり、低レベルのハードウェア操作から高レベルの抽象化まで幅広く対応できる点が大きな魅力です。オブジェクト指向プログラミングにも完全に対応しています。 C#とは C#は、アンダース・ヘルス

  14. C言語のエラー処理入門!errno・perror・strerrorの使い方を徹底解説

    C言語におけるエラー処理の基本 C言語には、JavaやPythonのような例外処理(try-catch)といった組み込みのエラー処理機構が用意されていません。そのため、C言語では戻り値のチェックやグローバル変数「errno」などを活用して、独自にエラー処理を実装するのが一般的な手法となっています。 ヘッダーファイル「error.h」を使用すると、return文を通じてエラーメッセージを出力することができます。関数呼び出し時にエラーが発生した場合、多くの関数は-1またはNULLを返し、同時にerrno変数にエラーコードが設定されます。 errnoはグローバル変数であり、C言語で関数が呼び出される

  15. C++のfrexp()関数とは?浮動小数点数を仮数と指数に分解する方法を解説

    frexp()関数は、浮動小数点数を仮数(significand)と2を底とする整数の指数(exponent)に分解するための数学関数です。この関数は正規化されたバイナリ仮数を返し、戻り値の範囲は0.5以上1未満となります。引数に0を渡した場合は、仮数・指数のいずれも0が返されます。frexp()の動作は、次の数式で表すことができます。x = significand * (2^exponent)つまり、任意の浮動小数点数xは「0.5以上1未満の仮数」と「2のべき乗」との積として表現できます。この性質を利用することで、浮動小数点数の内部構造の調査や数値解析など、さまざまな場面でfrexp()が役

  16. C++のlog1p()関数とは?使い方とサンプルコードをわかりやすく解説

    C++のlog1p()関数の概要C++のlog1p()関数は、任意の数値 a に対して「(a + 1) の自然対数(底が e の対数)」を計算するための関数です。戻り値として (a+1) の自然対数の値が返されます。なお、引数に -1 未満の値 を渡した場合は、有効な結果が得られないため NaN(Not a Number) が返される点に注意が必要です。数学的な表現log1p() の動作は、次の数式で表すことができます。log1p(a) = base-e log(a+1)log1p()の構文C++における log1p() 関数の構文は以下のとおりです。float log1p(float var

  17. C++のexpm1()関数とは?使い方とコード例を解説

    expm1()関数は、自然対数の底eを任意の数で累乗した値から1を引いた結果を計算するために使用される数学関数です。つまり、(e^a) - 1 の値を返します。 expm1()の数学的な表現は以下の通りです。 expm1(a) = (e^a) - 1 なお、xが非常に小さい値の場合、e^xは1に近づくため、通常の方法(exp(x) - 1)で計算すると桁落ちによって精度が低下します。expm1()関数を使うことで、このようなケースでも高精度な結果を得ることができます。 C++におけるexpm1()関数の構文は以下の通りです。 float expm1(variable_name); 各要素の意

  18. C++のldexp()関数とは?使い方とサンプルコードをわかりやすく解説

    C++のldexp()関数は、浮動小数点数「a」に「2のb乗」を掛けた値を計算するために使用される数学関数です。この関数は2つの引数を受け取ります。第1引数には浮動小数点数を、第2引数には整数値(指数)を指定します。ldexp()の計算内容は、次の数式で表されます。ldexp() = a * 2^bldexp()の構文C++言語におけるldexp()の構文は以下の通りです。float ldexp(float variable1 , int variable2)各引数の意味は次のようになっています。variable1 − 仮数(significand)を表す変数に付けられた任意の名前です。浮動小

  19. 【C++】remquo()関数とは?剰余と商を同時に取得する方法を解説

    C++のremquo()関数は、分子を分母で割った浮動小数点の剰余を計算すると同時に、その商を引数として渡されたポインタに格納する関数です。分母がゼロの場合は、NaN(Not a Number:非数)を返します。remquo()はfmod()やremainder()とよく似た関数ですが、剰余だけでなく商の情報も一緒に取得できる点が大きな特徴です。remquo()の構文float remquo(float var1, float var2, int* var3);各引数の意味は以下の通りです。var1 ― 分子の値を格納する変数。var2 ― 分母の値を格納する変数。var3 ― 計算された商を

  20. C++で1文字を文字列に変換する3つの方法を解説

    C++で1文字(char型)を文字列(std::string)に変換するには、いくつかの方法があります。この記事では、代表的な3つの手法をサンプルコードと実行結果付きでわかりやすく解説します。サンプルコード以下は、C++で単一の文字を文字列に変換するプログラムの例です。3つの異なる方法を1つのコードにまとめています。#include <iostream> #include<string> #include<sstream> int main() {     char c = 'm';  &

Total 5990 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:23/300  20-コンピューター/Page Goto:1 17 18 19 20 21 22 23 24 25 26 27 28 29