ประเภทข้อมูล C ++

ในขณะที่เขียนโปรแกรมด้วยภาษาใด ๆ คุณจำเป็นต้องใช้ตัวแปรต่างๆเพื่อจัดเก็บข้อมูลต่างๆ ตัวแปรไม่ใช่อะไรนอกจากตำแหน่งหน่วยความจำที่สงวนไว้เพื่อเก็บค่า ซึ่งหมายความว่าเมื่อคุณสร้างตัวแปรคุณจะสงวนพื้นที่ในหน่วยความจำไว้

คุณอาจต้องการจัดเก็บข้อมูลประเภทข้อมูลต่างๆเช่นอักขระอักขระแบบกว้างจำนวนเต็มจุดลอยตัวจุดลอยตัวคู่บูลีนเป็นต้นตามประเภทข้อมูลของตัวแปรระบบปฏิบัติการจะจัดสรรหน่วยความจำและตัดสินใจว่าจะจัดเก็บอะไรใน หน่วยความจำที่สงวนไว้

ประเภทในตัวดั้งเดิม

C ++ เสนอโปรแกรมเมอร์ประเภทข้อมูลในตัวและประเภทข้อมูลที่กำหนดโดยผู้ใช้ ตารางต่อไปนี้แสดงประเภทข้อมูล C ++ พื้นฐานเจ็ดประเภท -

ประเภท คำสำคัญ
บูลีน บูล
ตัวละคร ถ่าน
จำนวนเต็ม int
จุดลอยตัว ลอย
จุดลอยตัวคู่ สองเท่า
ไร้ค่า เป็นโมฆะ
ตัวอักษรกว้าง wchar_t

สามารถแก้ไขประเภทพื้นฐานได้หลายประเภทโดยใช้ตัวปรับแต่งประเภทเหล่านี้อย่างน้อยหนึ่งประเภท -

  • signed
  • unsigned
  • short
  • long

ตารางต่อไปนี้แสดงประเภทตัวแปรจำนวนหน่วยความจำที่ใช้ในการจัดเก็บค่าในหน่วยความจำและค่าสูงสุดและต่ำสุดคือเท่าใดซึ่งสามารถเก็บไว้ในตัวแปรประเภทดังกล่าวได้

ประเภท ความกว้างบิตทั่วไป ช่วงทั่วไป
ถ่าน 1 ไบต์ -127 ถึง 127 หรือ 0 ถึง 255
ถ่านที่ไม่ได้ลงนาม 1 ไบต์ 0 ถึง 255
ลงนามถ่าน 1 ไบต์ -127 ถึง 127
int 4 ไบต์ -2147483648 ถึง 2147483647
int ที่ไม่ได้ลงนาม 4 ไบต์ 0 ถึง 4294967295
ลงนาม int 4 ไบต์ -2147483648 ถึง 2147483647
int สั้น ๆ 2 ไบต์ -32768 ถึง 32767
int สั้นที่ไม่ได้ลงนาม 2 ไบต์ 0 ถึง 65,535
ลงนามสั้น int 2 ไบต์ -32768 ถึง 32767
int ยาว 8 ไบต์ -2,147,483,648 ถึง 2,147,483,647
ลงนามยาว int 8 ไบต์ เช่นเดียวกับ int ยาว
int ยาวที่ไม่ได้ลงนาม 8 ไบต์ 0 ถึง 4,294,967,295
int ยาวยาว 8 ไบต์ - (2 ^ 63) ถึง (2 ^ 63) -1
int ยาวยาวที่ไม่ได้ลงนาม 8 ไบต์ 0 ถึง 18,446,744,073,709,551,615
ลอย 4 ไบต์
สองเท่า 8 ไบต์
คู่ยาว 12 ไบต์
wchar_t 2 หรือ 4 ไบต์ อักขระกว้าง 1 ตัว

ขนาดของตัวแปรอาจแตกต่างจากที่แสดงในตารางด้านบนขึ้นอยู่กับคอมไพเลอร์และคอมพิวเตอร์ที่คุณใช้

ต่อไปนี้เป็นตัวอย่างซึ่งจะสร้างขนาดข้อมูลที่ถูกต้องในคอมพิวเตอร์ของคุณ

#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;
}

ตัวอย่างนี้ใช้ endlซึ่งจะแทรกอักขระขึ้นบรรทัดใหม่หลังทุกบรรทัดและ << โอเปอเรเตอร์จะถูกใช้เพื่อส่งผ่านค่าหลายค่าไปยังหน้าจอ เรายังใช้sizeof() เพื่อรับขนาดของข้อมูลประเภทต่างๆ

เมื่อรวบรวมและดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ซึ่งอาจแตกต่างกันไปในแต่ละเครื่อง -

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

การประกาศ typedef

คุณสามารถสร้างชื่อใหม่สำหรับประเภทที่มีอยู่โดยใช้ typedef. ต่อไปนี้เป็นไวยากรณ์ง่ายๆในการกำหนดประเภทใหม่โดยใช้ typedef -

typedef type newname;

ตัวอย่างเช่นต่อไปนี้จะบอกคอมไพเลอร์ว่าฟุตเป็นชื่ออื่นสำหรับ int -

typedef int feet;

ตอนนี้การประกาศต่อไปนี้ถูกต้องตามกฎหมายและสร้างตัวแปรจำนวนเต็มที่เรียกว่าระยะทาง -

feet distance;

ประเภทแจกแจง

ชนิดที่แจกแจงประกาศชื่อชนิดที่เป็นทางเลือกและชุดของตัวระบุศูนย์หรือมากกว่าที่สามารถใช้เป็นค่าของชนิด ตัวแจงนับแต่ละตัวเป็นค่าคงที่ซึ่งเป็นชนิดของการแจงนับ

การสร้างการแจงนับจำเป็นต้องใช้คีย์เวิร์ด enum. รูปแบบทั่วไปของประเภทการแจงนับคือ -

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

ในที่นี้ enum-name คือชื่อประเภทของการแจงนับ รายชื่อจะคั่นด้วยจุลภาค

ตัวอย่างเช่นรหัสต่อไปนี้กำหนดการแจกแจงของสีที่เรียกว่าสีและตัวแปร c ของประเภทสี สุดท้าย c กำหนดค่าเป็น "สีน้ำเงิน"

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

ตามค่าเริ่มต้นค่าของชื่อแรกคือ 0 ชื่อที่สองมีค่า 1 และค่าที่สามมีค่า 2 เป็นต้น แต่คุณสามารถตั้งชื่อเป็นค่าเฉพาะได้โดยการเพิ่มตัวเริ่มต้น ตัวอย่างเช่นในการแจงนับต่อไปนี้green จะมีค่า 5

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

ที่นี่ blue จะมีค่าเท่ากับ 6 เนื่องจากแต่ละชื่อจะมีค่ามากกว่าหนึ่งชื่อที่นำหน้า