C言語[完全]入門 2022 メモ09
C言語の勉強に良いかと思い「C言語[完全]入門・松浦健一郎 (著), 司 ゆき (著)」を購入しました。
問題があった部分やつまずいた部分での解決方法を、覚書として残しておきたいと思います。
私の行動としてはWindows11とmacOS13です。主にWindows11で操作をしていますが、macでの学習も必要だと感じる場合は、両方を覚書として残しておきたいと考えています。
このメモは、「Chapter5 section02」の覚書になります。
ブログ内リンク
『C言語[完全]入門』関連リンク
- 『C言語[完全]入門』サンプルファイル
- https://www.sbcr.jp/support/4815610049/
- ひぐぺん工房(松浦健一郎・司ゆき) - HigPen Works
整数型
- short:16ビット以上、16ビット(2バイト)
- int:16ビット以上、32ビット(4バイト)
- long:32ビット以上、32/64ビット(4/8バイト)
- long long:64ビット以上、64ビット(8バイト)
- 注意:longに関しては、Windowsでは32ビット(4バイト)、macOS/Linuxでは64ビット(8バイト)です。
- short int、long int、long long intのように書くこともできる。
- 1バイトは8ビット。8bitなら「2の8乗」、16bitなら「2の16乗」、32bitなら「2の32乗」です。
sizeof
- sizeof(演算子):型のサイズを知る事ができます。
- izeof(型)
%lu
- バイト数の多い符号無し整数。符号なし倍精度整数を10進で出力する。
- 参考:フォーマット指定子一覧
符号付き整数型と符号なし整数型
- 符号付き:signed、signed shortは符号付きです。
- 符号なし:unsigned、unsigned shortは符号なしです。
- 8ビット、2の8乗(2*2*2*2*2*2*2*2):符号付き(-128〜127)、符号なし(0〜255)
- %lld:llは、long longを表わす長さ修飾子です。(長さ修飾子)
- 特に問題がなければintを使う。値の範囲が広ければlongやlong longを使う。メモリを節約したいときにshortを使う。
- ビット数が決まった整数型:int8_t(1 バイトの符号付き整数 )〜int64_t(8 バイトの符号付き整数 )、uint8_t(1 バイトの符号なし整数 )〜uint64_t( 8 バイトの符号なし整数 )などがある。
- 参考:データ型とサイズ
暗黙の変数
- 変換順位:変換順位が低い型から高い型への変換を行います。
- 整数拡張(整数昇格):int よりもランクの低い整数型に対して演算を行うときには、演算に先立って、int以上のランク(整数変換の順位 (integer conversion rank))の型に変換されるルールがあります。このルールを、整数拡張 (integer promotion) と呼びます。
- 参考:型変換 | Programming Place Plus C言語編 第21章
- 算術変換:オペランドが2つある演算子で、それぞれが異なる算術型 (arithmetic type) の場合には、両者の型を揃える型変換を行ってから、演算が行われます。算術型とは、整数型と浮動小数点型を合わせた呼び名です。
- 参考:型変換 | Programming Place Plus C言語編 第21章
- オペランドとは、コンピュータの演算における値や変数のことである。
整数型・浮動小数点型
- 型ごとに割り当てられるサイズが異なり、サイズに応じて型に格納可能な値の範囲が設定されます。
- 文字型:char(1バイト)
- 整数型:short int(2バイト)、 int(4バイト)、 long int(4バイト)
- 浮動小数点型:float(4バイト)、 double(8バイト)、 long double(8バイト)
- 参考:C言語 | 変数の型
色々な浮動小数点型
- float:32ビット・単精度(floating point number)
- double:64ビット・倍精度
- long double:64ビット以上・拡張倍精度
%.40f\n・1/3.0L
- .40:小数点以下40桁
- L:1/3.0はdouble型で計算され、1/3.0Lはlong double型で計算される。
FPU
- x86/s64のCPUを採用している環境下では、x87というFPU(Floating Point Unit、浮動小数点(演算処理)装置)の使用に基づいて、浮動小数点を80ビットで計算する場合もあります。
float・double
- 特に問題が無ければ精度の高いdoubleを使う。
- 速度やメモリの節約を重視する場合にはfloatを使う。
接尾辞(せつびじ)・suffix
- なし:int
- lまたはL:longまたはlong long
- llまたはLL:long long
- なし:signed
- uまたはU:unsigned
- fまたはF:float
- なし:double
- lまたはL:long double