Một Số Kỹ Thuật Lập Trình Với Kiểu Dữ Liệu Cấu Trúc (struct) Trong C++
Có thể bạn quan tâm
1. Truy xuất dữ liệu trong kiểu cấu trúc (struct) trong C++
Truy xuất các trường dữ liệu trong kiểu cấu trúc thông qua toán tử thành phần cấu trúc . hay còn gọi là toán tử chấm (dot operation).
Cú pháp
<tên biến cấu trúc>.<tên thành phần>
Ví dụ:struct DIEM { int x; int y; }; DIEM d1 = {19, 20}; cout<<"Toa do cua diem d1 la ("<<d1.x<<", "<<d1.y<<")";
2. Gán dữ liệu cho các thành phần trong cấu trúc
Gán biến cấu trúc này cho biến cấu trúc kia (phải cùng kiểu cấu trúc)
Cú pháp: <biến cấu trúc đích> = <biến cấu trúc nguồn>;
Gán thành phần của biến cấu trúc bằng giá trị cụ thể
Cú pháp: <biến cấu trúc đích>.<tên thành phần> = <giá trị>;
Ví dụ:struct DIEM { int x; int y; }; DIEM d1 = {19, 20}; DIEM d2, d3; d2 = d1;//gán biến cấu trúc này cho biến cấu trúc kia d3.x = 99;//gán các thành phần cấu trúc bằng giá trị d3.y = 101;
3. Cấu trúc phức tạp
Thành phần của cấu trúc là một cấu trúc khác
#include <iostream> using namespace std; struct POINT { int x; int y; }; struct TRIANGLE { POINT p1; POINT p2; POINT p3; }; int main() { POINT d1 = {-1, 0}; POINT d2 = {0, 2}; POINT d3 = {2, 0}; TRIANGLE t1; t1.p1 = d1; t1.p2 = d2; t1.p3 = d3; cout<<"Coordinates of 3 points in triangle t1:"<<endl; cout<<"("<<t1.p1.x<<", "<<t1.p1.y<<")"<<endl; cout<<"("<<t1.p2.x<<", "<<t1.p2.y<<")"<<endl; cout<<"("<<t1.p3.x<<", "<<t1.p3.y<<")"<<endl; system("pause"); }Kết quả
Coordinates of 3 points in triangle t1: (-1, 0) (0, 2) (2, 0)Thành phần của cấu trúc là mảng
#include <iostream> using namespace std; struct POINT { int x; int y; }; struct TRIANGLE { POINT p_array[3]; }; int main() { TRIANGLE t1; cout<<"Input 3 points of triangle t1:"; for(int i=0;i<3;i++){ cout<<endl<<"Input point "<<i+1<<endl; cout<<"x:"; cin>>t1.p_array[i].x; cout<<"y:"; cin>>t1.p_array[i].y; } cout<<"Coordinates of 3 points in triangle t1:"<<endl; cout<<"("<<t1.p_array[0].x<<", "<<t1.p_array[0].y<<")"<<endl; cout<<"("<<t1.p_array[1].x<<", "<<t1.p_array[1].y<<")"<<endl; cout<<"("<<t1.p_array[2].x<<", "<<t1.p_array[2].y<<")"<<endl; system("pause"); }Kết quả
Input 3 points of triangle t1: Input point 1 x:-1 y:0 Input point 2 x:0 y:2 Input point 3 x:2 y:0 Coordinates of 3 points in triangle t1: (-1, 0) (0, 2) (2, 0)4. Kích thước của struct
Trong bài Các kiểu dữ liệu cơ bản trong C++, các bạn đã biết cách sử dụng hàm sizeof() để xem kích thước của kiểu dữ liệu. Khi một kiểu dữ liệu cấu trúc (struct) được định nghĩa thì nó cũng là một kiểu dữ liệu.
Vậy thì kích thước của kiểu dữ liệu cấu trúc là bao nhiêu? Chúng ta hãy viết một chương trình in kích thước của kiểu dữ liệu cấu trúc để trả lời câu hỏi trên.#include <iostream> using namespace std; struct POINT { int x; int y; }; struct TRIANGLE { POINT p1; POINT p2; POINT p3; }; struct STUDENT { string id; string name; string birthday; bool gender; float math, physics, chemistry; }; int main() { cout << "Size of POINT is: " << sizeof(POINT) <<" byte"<< endl; cout << "Size of TRIANGLE is: " << sizeof(TRIANGLE) <<" byte"<< endl; cout << "Size of STUDENT is: " << sizeof(STUDENT) <<" byte"<< endl; system("pause"); }
Kết quả trên hệ thống 32 bit
Size of POINT is: 8 byte Size of TRIANGLE is: 24 byte Size of STUDENT is: 112 byteNhận xét:
Cấu trúc POINT có 2 kiểu int thì kích thước kiểu POINT là 8 byte.
Cấu trúc TRIANGLE có 3 kiểu POINT, mỗi kiểu POINT 8 byte thì kích thước kiểu TRIANGLE là 24 byte.
Cấu trúc STUDENT có 3 kiểu string, mỗi kiểu string 32 byte, có 1 kiểu bool với 1 byte, có 3 kiểu float với 4 byte. Tổng cộng là 109 byte. Nhưng chương trình in ra kiểu STUDENT có 112 byte. Những byte được thêm vào (3 byte) gọi là byte đệm (padding byte) để giúp các thành phần dữ liệu trong cấu trúc được truy xuất nhanh hơn.
- Sửa (update) dữ liệu và câu lệnh drop trong MySQL với Python
- Java collections framework: Map interface và lớp HashMap
- Lỗi (error) và ngoại lệ (exception) trong Python
- Sử dụng câu lệnh break và continue với cấu trúc vòng lặp trong PHP
- Truyền tham trị và tham chiếu cho phương thức trong Java
Từ khóa » Nhập Mảng Cấu Trúc Trong C++
-
Mảng Cấu Trúc Trong C++
-
Mảng Struct Và Ví Dụ ứng Dụng
-
Mảng Chứa Struct Trong C | Lập Trình Từ Đầu
-
Bài 8.2. Mảng Cấu Trúc (struct Array) Trong Lập Trình C - YouTube
-
Mảng Của Structure Trong C - Học Lập Trình C Online - Viettuts
-
Struct Trong C++ - Học Lập Trình C++ Online - Viettuts
-
Struct Trong C/C++ - Hoclaptrinh
-
Nhập Dữ Liệu Vào Mảng Cấu Trúc Trong C - Dạy Nhau Học
-
Chi Tiết Bài Học Cấu Trúc Trong C++ - Vimentor
-
Kỹ Thuật Lập Trình Với Mảng Cấu Trúc Và Truyền Cấu Trúc Cho Hàm
-
Lập Trình C: Cấu Trúc (Struct) | V1Study
-
Kiểu Cấu Trúc Và Các Thao Tác Trên Kiểu Cấu Trúc - .vn
-
Bài 10. Dữ Liệu Có Cấu Trúc (STRUCT) - Tin Học Cho Người Việt