C言語やC++の入門書や入門サイトの多くは、float型やdouble型などの浮動小数点型を、整数ではなく「実数」を表現するための型として紹介しています。そして、これら浮動小数点型のことを「実数型」と呼んでいることも少なくありません。しかし、C言語の標準規格であるJIS X3010:2003では、実数型はまったく別の定義がされています。
まずは実際の規格(JIS X3010:2003 6.2.5 型)から引用してみることにします。
整数型及び実浮動小数点型を総称して実数型(real type)と呼ぶ。
これだけの説明では分かりにくいと思いますので、同じ節から別の定義を引用してみることにします。
実浮動小数点型及び複素数型を総称して浮動小数点型(floating type)と呼ぶ。
これで大体事情が見えてきたと思います。つまりC言語では、虚数を表現するための複素数型に対して、実数しか表現できない算術型のサブセットを「実数型」と呼んでいるのです。そのため、実数型には当然整数型(char型、_Bool型、列挙型を含む)も含まれます。
なお、C言語に複素数型が導入されたのはC99からです。C99であってもフリースタンディング環境では複素数型は任意実装ですし、C11以降ではホスト環境でも複素数型は任意実装になっています。仮に複素数型がサポートされていない場合でも、浮動小数点型のみを指して実数型と呼ぶことはありません。
一方、C++の標準規格では実数型の定義がありません。C++の組み込み型には複素数型がないという事情もあるからでしょう(C++では、複素数はクラステンプレートを用いて表現します)。しかし、だからといって、わざわざ浮動小数点型のことを実数型と呼ぶような紛らわしいことをする必要はないはずです。

![[迷信] scanfではバッファオーバーランを防げない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/3279051_s.jpg)
![[迷信] アルゴリズム関数内で関数オブジェクトはコピーされない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4845189_s.jpg)
![[迷信] scanfでキーボードから入力](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4991829_s.jpg)
![[迷信] 一重引用符の中には一文字しか書けない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4842077_s.jpg)
![[迷信] オブジェクトの動的生成に失敗するとメモリリークする](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4673249_s.jpg)
![[迷信] absは常に非負の値を返す](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4500264_s.jpg)