変数 (プログラミング)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/08 17:27 UTC 版)
プログラミングにおける変数(へんすう、英: variable)とは、高水準言語のプログラムのソースコードにおいて、扱うデータを読み書きする記憶域 (storage) のことであり、固有の名前(識別子)によって識別される[1]。変数を用いることで、データを一定期間記憶し必要なときに利用することができる。高水準言語において、変数は記憶装置(メモリ)を抽象化する役割を果たす。
注釈
- ^ C17規格までのC言語およびC++03規格までのC++において、
auto
修飾されたローカル変数は自動記憶域期間を持つ自動変数になるが、ローカル変数は既定で自動変数となるため、auto
キーワードは通例使われない。なおC++において、C++11規格以降はauto
キーワードの意味が変更されており、型推論のプレースホルダーに使われる。C言語においても、C23規格以降はauto
キーワードの意味が変更され、型推論のプレースホルダーに使われるようになる予定である[13]。 - ^ いわゆるオブジェクト指向におけるオブジェクトではなく、プログラミング言語で値を表すものや、メモリ上にあるデータ(メモリオブジェクト)などといったものの総称である。
- ^ C言語のリンケージ指定の用法における
static
キーワードの対義語はextern
キーワードである。グローバル変数や関数はデフォルトで外部リンケージであり、他のソースファイルからもそれらの「宣言」を記述するだけでアクセスできるようになるが、宣言をextern
修飾することで外部リンケージであることを明確に示すこともできる。不完全型の外部リンケージ変数宣言の場合はextern
修飾は必須ではないが、完全型の外部リンケージ変数宣言の場合は定義と区別するためにextern
修飾が必須となる。extern
キーワードは通例ヘッダーファイルで前方宣言する際に使用される[11]。
出典
- ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、229頁。ISBN 4-320-02526-1。
- ^ EXP33-C. 初期化されていないメモリからの読み込みを行わない
- ^ ごく初期のC言語(UNIXバージョン6の頃)では違うが。[要出典]
- ^ 「動的スコープ」という用語自体が誤った名称 (misnomer) である、という指摘がある https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node43.html
- ^ "The lifetime of an object is the portion of program execution during which storage is guaranteed to be reserved for it." ISO/IEC 9899:2017. p.30.
- ^ "An object exists, has a constant address, ... and retains its last-stored value throughout its lifetime." ISO/IEC 9899:2017. p.30.
- ^ "If an object is referred to outside of its lifetime, the behavior is undefined" ISO/IEC 9899:2017. p.30.
- ^ ISO/IEC 9899、JIS X 3010「プログラム言語C」、ISO/IEC 14882、JIS X 3014「プログラム言語C++」を参照。
- ^ 3. Scope and Extent | Common Lisp the Language, 2nd Edition
- ^ ECMA-334 "C# Language Specification"、JIS X 3015「プログラム言語C#」、Microsoft Docs(日/英)などを参照。
- ^ a b 記憶域クラス指定子 (C) - cppreference.com
- ^ 記憶域クラス指定子 (C++) - cppreference.com
- ^ C23 - cppreference.com
- ^ 例えばPHPのマニュアルに「Another important feature of variable scoping is the static variable. A static variable exists only in a local function scope, but it does not lose its value when program execution leaves this scope.」(http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static) とあるのは、エクステントについて議論しているのにエクステントの語が無く、この記述では混同されているものと見られる[独自研究?]。
- 1 変数 (プログラミング)とは
- 2 変数 (プログラミング)の概要
- 3 変数の宣言と代入と参照
- 4 スコープと生存期間
- 5 関連項目
Weblioに収録されているすべての辞書から変数 (プログラミング)を検索する場合は、下記のリンクをクリックしてください。
全ての辞書から変数 (プログラミング) を検索
- 変数 (プログラミング)のページへのリンク