一文窮盡所有C 的資料型別

2021-10-19 11:11:02 字數 2953 閱讀 4927

在 python 中,想要獲取變數型別通過type()來獲取非常方便,列印也十分清晰。雖然 c++ 是顯式定義變數,但是有時候我們想通過變數名來獲取資料型別,就不如 python 方便了。

在 c++ 中,想要通過變數名來獲取資料型別,可以使用typeid(var).name()來獲取,但是缺點是輸出形式比較難以辨識。在這裡,我們對 c++ 的所有資料型別進行一下總結,順便也便於以後查閱。

需要注意的是,此函式需要#include,並且不同的編譯器下會有不同的顯示,這裡以 g++ 的編譯結果為例。

首先是執行結果:

char 型別顯示為:       c

short 型別顯示為: s

int 型別顯示為: i

long 型別顯示為: l

long long 型別顯示為: x

int8_t 型別顯示為: a

int16_t 型別顯示為: s

int32_t 型別顯示為: i

int64_t 型別顯示為: l

unsigned char 型別顯示為:      h

unsigned short 型別顯示為: t

unsigned int 型別顯示為: j

unsigned long 型別顯示為: m

unsigned long long 型別顯示為: y

uint8_t 型別顯示為: h

uint16_t 型別顯示為: t

uint32_t 型別顯示為: j

uint64_t 型別顯示為: m

float 型別顯示為:      f

double 型別顯示為: d

char 型別顯示為:     a1_c

short 型別顯示為: a2_s

int 型別顯示為: a3_i

long 型別顯示為: a4_l

long long 顯示為: a100_x

float 型別顯示為: a2_f

double 型別顯示為: a2_d

vector為: st6vectoriisaiiee // 注意這裡的i

vector為: st6vectoridsaidee // 注意這裡的d

string 型別顯示為: nst7__cxx1112basic_stringicst11char_traitsicesaiceee

int* 型別顯示為:       pi

double* 型別顯示為: pd

double** 型別顯示為: ppd

指標陣列 型別顯示為: a3_pd // double* v[3]

陣列指標 型別顯示為: pa3_d // double (*v)[3]

string* 型別顯示為: pnst7__cxx1112basic_stringicst11char_traitsicesaiceee

std::vector* 為: pst6vectoridsaidee

std::vector* 為: pst6vectorinst7__cxx1112basic_stringicst11char_traitsicesaiceeesais5_ee

struct 型別顯示為:     8v_struct

struct 初始化後為: 8v_struct

class 型別顯示為: 7v_class

object 型別顯示為: 7v_class

function 型別顯示為: fvve

#include #include #include using namespace std;

class v_class{};

struct v_struct{};

void v_func(){}

int main()

cout << endl;

cout << endl;

// 正整數類別

cout << endl;

cout << endl;

// 浮點數類別

cout << endl;

// 陣列類別

;cout << "char 型別顯示為:\t" << typeid(v).name() << endl;

} ;

cout << "short 型別顯示為:\t" << typeid(v).name() << endl;

} ;cout << "int 型別顯示為:\t" << typeid(v).name() << endl;

} ;cout << "long 型別顯示為:\t" << typeid(v).name() << endl;

} ;

cout << "long long 顯示為:\t" << typeid(v).name() << endl;

} ;

cout << "float 型別顯示為:\t" << typeid(v).name() << endl;

} ;

cout << "double 型別顯示為:\t" << typeid(v).name() << endl;

} // 容器類別

// 字串類別

cout << endl;

// 指標類別

cout << endl;

// 結構體類別

// 結構體類別

// 類

// 物件

// 函式類別

return 0;

}

一文回顧Redis五大物件 資料型別

最新 redis記憶體 三個重要的緩衝區 最新 redis記憶體 記憶體消耗 記憶體都去哪了?最新 redis持久化 如何選擇合適的持久化方式 最新 redis持久化 aof日誌 redis 是乙個高效能的分布式記憶體型資料庫,在國內外各大網際網路公司中都有著廣泛的使用,即使是一些非網際網路公司中也...

C 的資料型別 資料型別的轉化

一 c 有15個預定義型別,其中13個是值型別,兩個是引用型別 string 和 object 這裡主要說明整型 浮點型 布林型以及引用型 1 整型資料 2 浮點型 浮點型從精度有低到高有float double decimal。他們的命名規則如下 1 float資料型別用於較小的浮點數,因為它要求...

C語言資料型別 一

todo 整型 短整型 16位 32767 32767 short si 32767 無符號短整型 16位 0 65535 unsigned short us 65535 printf short hd u short u n si,us 基本整型 32 64位 2147483622 2147483...