Jenis data C++


Apabila pengaturcaraan menggunakan bahasa pengaturcaraan, pelbagai pembolehubah diperlukan untuk menyimpan pelbagai maklumat. Apa yang disimpan oleh pembolehubah ialah lokasi memori nilai yang disimpannya. Ini bermakna apabila anda mencipta pembolehubah, beberapa ruang dikhaskan dalam ingatan.

Anda mungkin perlu menyimpan maklumat pelbagai jenis data (seperti jenis aksara, jenis aksara lebar, jenis integer, jenis titik terapung, jenis titik terapung berganda, jenis Boolean, dsb.). pada jenis data pembolehubah , untuk memperuntukkan memori dan memutuskan perkara yang hendak disimpan dalam memori simpanan.

Jenis terbina dalam asas

C++ menyediakan pengaturcara dengan pelbagai jenis data terbina dalam dan jenis data yang ditentukan pengguna. Jadual berikut menyenaraikan tujuh jenis data C++ asas:

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

Sesetengah jenis asas boleh diubah suai dengan satu atau lebih pengubah jenis:

  • ditandatangani

  • tidak bertanda

  • pendek

  • panjang

Jadual berikut menunjukkan memori yang diperlukan oleh pelbagai jenis pembolehubah untuk menyimpan nilai dalam ingatan, serta nilai maksimum dan minimum yang boleh disimpan oleh pembolehubah jenis itu.

类型范围
char1 个字节-128 到 127 或者 0 到 255
unsigned char1 个字节0 到 255
signed char1 个字节-128 到 127
int4 个字节-2147483648 到 2147483647
unsigned int4 个字节0 到 4294967295
signed int4 个字节-2147483648 到 2147483647
short int2 个字节-32768 到 32767
unsigned short intRange0 到 65,535
signed short intRange-32768 到 32767
long int4 个字节-2,147,483,647 到 2,147,483,647
signed long int4 个字节与 long int 相同
unsigned long int4 个字节0 到 4,294,967,295
float4 个字节+/- 3.4e +/- 38 (~7 个数字)
double8 个字节+/- 1.7e +/- 308 (~15 个数字)
long double8 个字节+/- 1.7e +/- 308 (~15 个数字)
wchar_t2 或 4 个字节1 个宽字符

Seperti yang dapat dilihat daripada jadual di atas, saiz pembolehubah akan berbeza-beza bergantung pada pengkompil dan komputer yang digunakan.

Contoh di bawah akan mengeluarkan saiz pelbagai jenis data pada komputer anda.

#include <iostream>
using namespace std;

int main()
{
   cout << "Size of char : " << sizeof(char) << endl;
   cout << "Size of int : " << sizeof(int) << endl;
   cout << "Size of short int : " << sizeof(short int) << endl;
   cout << "Size of long int : " << sizeof(long int) << endl;
   cout << "Size of float : " << sizeof(float) << endl;
   cout << "Size of double : " << sizeof(double) << endl;
   cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
   return 0;
}

Contoh ini menggunakan endl, yang akan memasukkan aksara baris baharu selepas setiap baris Operator << Kami juga menggunakan fungsi sizeof() untuk mendapatkan saiz pelbagai jenis data.

Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut, yang akan berbeza-beza bergantung pada komputer yang digunakan:

Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4

pengisytiharan typedef

Anda boleh menggunakan typedef untuk memberikan jenis yang sedia ada nama baharu. Berikut ialah sintaks untuk mentakrifkan jenis baharu menggunakan typedef:

typedef type newname;

Sebagai contoh, pernyataan berikut akan memberitahu pengkompil bahawa kaki adalah nama lain untuk int:

typedef int feet;

Sekarang, pengisytiharan berikut adalah sepenuhnya Secara sah, ia mewujudkan jarak pembolehubah integer:

feet distance;

Jenis penghitungan

Jenis penghitungan mengisytiharkan nama jenis pilihan dan satu set pengecam yang digunakan sebagai nilai jenis. Pengecam sifar atau lebih boleh digunakan sebagai nilai jenis ini. Setiap enumerator ialah pemalar jenis enumerasi.

Untuk membuat penghitungan, anda perlu menggunakan kata kunci enum. Bentuk umum jenis penghitungan ialah:

enum enum-name { list of names } var-list;

Di sini, nama-enum ialah nama jenis penghitungan. Senarai nama { senarai nama } dipisahkan koma.

Sebagai contoh, kod berikut mentakrifkan penghitungan warna dan jenis pembolehubah c ialah warna. Akhirnya, c diberikan nilai "biru".

enum color { red, green, blue } c;
c = blue;

Secara lalai, nama pertama mempunyai nilai 0, nama kedua mempunyai nilai 1, nama ketiga mempunyai nilai 2, dan seterusnya. Walau bagaimanapun, anda juga boleh menetapkan nilai khas pada nama dengan menambah nilai awal. Contohnya, dalam penghitungan di bawah, hijau mempunyai nilai 5.

enum color { red, green=5, blue };

Di sini, biru mempunyai nilai 6 kerana, secara lalai, setiap nama adalah 1 lebih besar daripada nama sebelumnya.