topazの遊び場

いろいろやってみる

そろそろC++やるぞパート2 ~ 組み込み型 ~

そろそろC++やります

そろそろC++をやります。そろそろC++をやりたいからです。
何回やるかはわかりません。基礎を理解するまではやろうと思います。

という感じでやっています。

※ 初心者がメモレベルで記録するので、技術記事としてはお力になれないかもしれません。

内容

  • 組み込み型

今回はMicrosoftのドキュメントを参考に組み込み型に触れていきます。

組み込み型

組み込み型はコンパイラに組み込まれていてどのヘッダーファイルにも定義されていません。
そのため、#include<>を書かなくても、使用することができます。

void型

主に以下の場合に用いられます。

関数やポインター関連も書いてありましたが、まだ触れていないため、出てきた時にこのvoid型を考えてみます。

std::nullptr_t型

こちらも、ポインターポインターについて触れていないため、のちのち考えます。

bool型

  • true か false を指定
bool a = true;
if (a)
{
    cout << "true" << endl;
}
// Output: true

こちらはJavaC#のようにboolを使うことができます。

bool a = true;
cout << a << endl;
// Output: 1
a = false;
cout << a << endl;
// Output: 0

出力はtrue, falseではなく、1, 0が出力されます。

char型

string型ではなくchar型

  • 基本実行文字セットのメンバーを効率的にエンコードする文字表現型
  • コンパイラは、 char, signed char、および unsigned char 型の変数をそれぞれ異なる型の変数として処理
  • 既定では、char 型の変数はint に上位変換
char c = 'a';
signed char sc = 'a';
unsigned char uc = 'a';

こちらも他のプログラミング言語でもみたことあるcharです。

if (c == uc && c == sc && uc == sc)
{
    cout << "All are equal" << endl;
}
// Output

char, signed char, unsigned charは同じ値なら等しくみなされます。

char c = 'a';
cout << c << endl;
if (c == 97)
{
    cout << "a == 97" << endl;
}
// Output: a == 97

aはASCIIコードで97なので、c == 97が trueになります。

浮動小数点型

  • IEEE-754 表現の、さまざまな大きさの小数値の近似値
  • 浮動小数点型は三種類: float型, double型 , long double型
  • サイズは float型 <= double型 <= long double型

整数型

  • 既定の基本整数型
  • signed, unsigned修飾子キーワードをつけられます。
  • サイズ修飾子は、使用する整数表現の幅をビット単位で指定
  • 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
整数型のシノニム

これらの型は、コンパイラによってシノニムと見なされます。

short a = 57;
short int b = 57;
signed short c = 57;
signed short int d = 57;

unsigned short e = 57;
unsigned short int f = 57;

int g = 57;
signed h = 57;
signed int i = 57;

unsigned j = 57;
unsigned int k = 57;

long l = 57;
long int m = 57;
signed long n = 57;
signed long int o = 57;

unsigned long p = 57;
unsigned long int q = 57;

long long r = 57;
long long int s = 57;
signed long long t = 57;
signed long long int v = 57;

unsigned long long w = 57;
unsigned long long int x = 57;

型が多くて複雑そうに見えるが、普通に使う分にはint型long型を使用すれば問題ないと思います。

データ型の範囲

割り当てられているメモリサイズが異なるので、どのくらいの精度で表現できるのかを知ることは必要です。
これに関しては必要に応じて Documentをみるとします。

感想

コンパイラに組み込まれているから組み込み型と呼び、ヘッダファイルに書かなくても使えることや、整数型も複数のシノニムがあるのだと、改めて考えさせられました。

C++のポインタについても学ばないとなと思いました。

次回は関数について触れていきたいと思います。