ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
文字列 / String
文字列 / Stringsnprintf - 文字列書式に従って指定文字数分だけ文字配列に書き込む
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子
オペレーション / Operation
ファイル操作 / File Operationコマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリC言語標準ライブラリ【assert.h】 - 診断機能C言語標準ライブラリ【complex.h】 - 複素数計算C言語標準ライブラリ【ctype.h】 - 文字操作C言語標準ライブラリ【errno.h】 - エラーC言語標準ライブラリ【fenv.h】 - 浮動小数点環境C言語標準ライブラリ【float.h】 - 浮動小数点型の特性C言語標準ライブラリ【inttypes.h】 - 整数型の書式の変換C言語標準ライブラリ【iso646.h】 - 代替つづり(Alternate spellings)C言語標準ライブラリ【limits.h】 - 整数型の大きさC言語標準ライブラリ【locale.h】 - 文化圏固有操作C言語標準ライブラリ【math.h】 - 数学C言語標準ライブラリ【setjmp.h】 - 非局所分岐C言語標準ライブラリ【signal.h】 - シグナル操作C言語標準ライブラリ【stdalign.h】 - アライメントC言語標準ライブラリ【stdarg.h】 - 可変個数の実引数C言語標準ライブラリ【stdatomic.h】 - アトミック操作C言語標準ライブラリ【stdbool.h】 - 論理型および論理値C言語標準ライブラリ【stddef.h】 - 共通の定義C言語標準ライブラリ【stdint.h】 - 整数型C言語標準ライブラリ【stdio.h】 - 入出力C言語標準ライブラリ【stdlib.h】 - 一般ユーティリティC言語標準ライブラリ【stdnoreturn.h】 - _NoreturnC言語標準ライブラリ【string.h】 - 文字列操作C言語標準ライブラリ【tgmath.h】 - 型総称数学関数(Type-generic math)C言語標準ライブラリ【threads.h】 - マルチスレッドC言語標準ライブラリ【time.h】 - 日付及び時間C言語標準ライブラリ【uchar.h】 - UnicodeユーティリティC言語標準ライブラリ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティC言語標準ライブラリ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





変数 / Variable




変数

変数とは、値を保持する箱の役目を果たす。
箱の種類によって、保持できる値の種類が決まるので、
変数を使用するときは、あらかじめ、変数を宣言して、その際に、変数の型も決めて、記述・宣言しなければならない。

自分で作る変数や関数などの名前は「識別子」と呼び、識別子の名前は基本的には 自由に命名が可能。
だが、変数名には、条件があり、予約語に含まれている文字は使用できない。


変数名の条件 - C言語

  • 半角英数字および半角アンダーバー(_)のみ使用でき、最初の1文字は英字である
  • 大文字、小文字は区別される
  • 31文字以内であること(古いコンパイラでは最初の6文字)
  • 予約語は使用できない


予約語 - C言語

  • auto
  • break
  • case
  • char
  • const
  • continue
  • default
  • do
  • double
  • else
  • enum
  • extern
  • float
  • for
  • goto
  • if
  • int
  • long
  • register
  • return
  • short
  • signed
  • unsigned
  • void
  • volatile
  • while


変数の有効範囲(スコープ)

変数の有効範囲を、「スコープ」という。
簡単に言えば、変数が使える範囲。
変数を宣言した場合、その変数がどこで有効なのかが決まっている。

プログラミング言語スコープ
C言語
ローカル変数
「ローカル変数」は、関数の内側で宣言した変数を言い、
有効範囲は、宣言した関数内のみ。
他の関数からは利用ができない。

グローバル変数
「グローバル変数」は、関数の外側で宣言された変数をいい、
有効範囲は、プログラム全体。
どの関数からも、「グローバル変数」を呼び出すことができる。
変数宣言する場所は、「ヘッダーファイルの呼び込み」記述と「main関数」記述の間で、
プログラムの最初に宣言する。

静的ローカル変数
ローカル変数の有効範囲は、宣言された関数内のみだが、
関数を呼び出すたびに、変数が初期化されてしまって、値を保持できない。
静的ローカル変数は、関数を呼び出す度に初期化されずに、値を保持できる。
静的ローカル変数にするには、宣言の時に、静的ローカル変数の宣言をすること。
静的ローカル変数は、「static 型名 変数名;」と宣言するだけ。
静的ローカル変数にすることで、プログラム中に複数回、同じ関数が呼び出されても、
最後に呼び出された時の変数の値を保持してくれる。
静的ローカル変数は、プログラムの開始処理時に一度だけ初期化する。


同一変数名の扱い
同じ名前の変数が、ローカル変数とグローバル変数にある場合、
ローカル変数の有効範囲内では、ローカル変数が優先され、グローバル変数は使用できない。
C++
ローカル変数
変数を宣言したブロック{}の中でのみ有効
ifなどの構文内での宣言された場合、有効範囲は、構文内のみ。

グローバル変数
関数外、ブロック{}外で、変数宣言したものがグローバル変数となる。


同一変数名の扱い
同じ名前の変数が、いくつもあった場合、最も内側の変数が使用される。
同じ名前のグローバル変数を呼び出したい時は、「::変数名」=「グローバル変数」として扱われる。



変数の初期化

宣言時に値を代入することを初期化という。

明示的に、変数を宣言するときに、値を変数に代入しなければ、
値は、「0」となる。


変数の型

データの種類意味
C言語
整数 (signed) char 1Byte
-128~+127
整数 unsigned char 1Byte
0~+255
整数 (signed) short (int) 2Byte
-32768~+32767
整数 unsigned short (int) 2Byte
0~+65535
整数 (signed) long (int) 4Byte
-2147483648~+2147483647
整数 unsigned long (int) 4Byte
0~+4294967295
整数 (signed) int 2Byte or 4Byte
(signed) short (int)もしくは(signed) long(int)と同じ
整数 unsigned int 2Byte or 4Byte
(signed) short (int)もしくは(signed) long(int)と同じ
小数 float 4Byte
仮数部232、指数部28
小数 double 8Byte
仮数部252、指数部211
C++
論理型 bool プール値(true または false)を扱う
整数型 char 8ビット符号付整数 0~255
MBCS(MultiByte Character Set)の文字を扱う。
文字型 wchar_t ワイド文字「Unicode(16ビット)」の文字を扱う。
C言語にはない型。
整数型 short 16ビット符号付整数 -32768~32767
整数型 int 32ビット符号付整数 -2147483648~2147483647
整数型 long 64ビット符号付整数 -9223372036854775808~ 9223372036854775807
浮動小数点型 float 32ビット単精度浮動小数点を扱う
浮動小数点型 double 64ビット単精度浮動小数点を扱う



変数の宣言と代入

変数の宣言
C言語型 変数名;
C++型名 変数名;
変数の代入
C言語型 変数名;
C++型名 変数名;
変数のポインタを参照
C言語&変数
C++
変数の代入
C言語変数名=値
C++変数名=値



変数の値

NULL(ヌル)空ポインタ定数
NUL(ナル)/0=値0の文字



型の使用例

宣言と代入
(signed) char char ch1, ch2; //宣言のみ
char ch1 = 'A'; //宣言と代入(初期化)
ch2 = 0x4C;// 16進数で4Chを代入

文字の宣言
Char a;

文字列の宣言
Char a[30];
unsigned char
(signed) short (int)
unsigned short (int)
(signed) long (int)
unsigned long (int) unsigned long l; //宣言のみ
l = 'C'; // long型lに'C'のASCIIコード4Chを代入
(signed) int int a, b; //宣言のみ
a = b = 100; // aとbに100を代入
整数の宣言=「int a;」
unsigned int
float float f; //宣言のみ
f = 3.1415;
double Double a;
実数(浮動小数点数)の宣言



; ;