C++ 修飾子の種類


C++ では、char、int、double データ型の前に修飾子を配置できます。修飾子は、さまざまな状況のニーズをより適切に満たせるように、基本タイプの意味を変更するために使用されます。

データ型修飾子は以下のとおりです:

  • signed

  • unsigned

  • long

  • short

修飾子signed、unsigned、long、短いtは全体に適用できますType、signedunsignedはcharacter型に適用でき、longはdouble型に適用できます。

修飾子 signed および unsigned は、long または short 修飾子の接頭辞としても使用できます。例: unsigned long int

C++ では、短縮表記法を使用して unsigned short または unsigned long を宣言できます。 int の代わりに、単語 unsigned, short または unsigned, long を書くだけでよく、int は暗黙的です。たとえば、以下の両方のステートメントは符号なし整変数を宣言しています。

unsigned x;
unsigned int y;

符号付き整数修飾子と符号なし整数修飾子の C++ 解釈の違いを理解するために、次の短いプログラムを実行してみましょう:

#include <iostream>
using namespace std;
 
/* 
 * 这个程序演示了有符号整数和无符号整数之间的差别
*/
int main()
{
   short int i;           // 有符号短整数
   short unsigned int j;  // 无符号短整数

   j = 50000;

   i = j;
   cout << i << " " << j;

   return 0;
}

上記のプログラムを実行すると、次の結果が出力されます:

-15536 50000

上記の結果、unsigned short 50,000 のビット パターンは、signed short -15,536 として解釈されます。

C++ の型修飾子

型修飾子は、変数に関する追加情報を提供します。

修飾子 意味
constconst 型のオブジェクトは、プログラムの実行中に変更できません。
volatile修飾子volatileは、プログラムによって明示的に指定されていない方法で変数の値が変更される可能性があることをコンパイラーに指示します。
restrict restrict で装飾されたポインターは、それが指すオブジェクトにアクセスする唯一の方法です。新しい型修飾子の制限が追加されたのは C99 のみです。