Các yếu tố xây dựng nên C và C++ phần 8 - Pdf 20

50
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
Tóm lượcvề cấutrúc(struct)
 Cấu trúc (struct) ₫ượcsử dụng ₫ể nhóm các dữ liệuliênquan
mô tả một ₫ốitượng, các dữ liệucóthể cùng hoặc khác kiểu
 Định nghĩakiểucấutrúcbằng cách khai báo tên các biến
thành viên. Định nghĩakiểucấutrúcchưaphảilà₫ịnh nghĩa
các biếncụ thể, vì thế không ₫ược ₫ặt giá trị₫ầuchocácbiến
 Kích cỡ củacấutrúc>= tổng kích cỡ các thành viên
 Truy cậpmộ
tbiếncấu trúc thông qua tên biến, toán tử (.) và tên
biến thành viên
 Các kiểucấutrúccóthể lồng vào nhau, trong cấutrúccóthể sử
dụng mảng, mộtmảng có thể có các phầntử là cấu trúc, v.v
 Các biến có cùng kiểucấutrúccóthể gán cho nhau, có thể sử
dụng ₫ể khởitạo cho nhau (khác hẳnvớimảng)
 Có thể sử dụng con trỏ₫ểtruy nhậpdữ liệucấu trúc thông qua
toán tử (*.) và toán tử (->)
 Hai kiểuc
ấu trúc có khai báo giốngnhauhoàntoànvẫnlàhai
kiểucấu trúc khác nhau
51
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.4.2 Hợpnhất
enum SignalType {BINARY_8, BINARY_16, ANALOG_1, ANALOG_2};
union SignalValue {
unsigned short word;
unsigned char byte;
float real;

củabiếnlớnnhất
 Khai báo kiểuunion tương tự như khai báo struct, nhưng ý
nghĩa khác hẳn
 Truy nhậpbiến thành viên cũng tương tự như struct, có thể qua
biếntrựctiếphoặcqua biếncon trỏ.
 Union có thể chứa struct, struct có thể chứa union, union có thể
chứamảng, các phầntử củamảng có thể là union.
53
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.5 ĐiềukhiểnCT: phân nhánh
 Các kiểu phân nhánh
– if else: Phân nhánh lựachọnmộthoặchaitrường hợp
– switch case: Phân nhánh lựachọnnhiềutrường hợp
– break: Lệnh nhảykết thúc (sớm) mộtphạmvi
– return: Lệnh nhảyvàkếtthúc(sớm) mộthàm
– goto: Lệnh nhảytớimột nhãn (không nên dùng!)
54
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.5.1 Cấutrúcif else
 Lựachọnmộttrường hợp: sử dụng if
if (npoints >= 60)
cout << "Passed";
if (npoints >= 80 && npoints <= 90) {
grade = ‘A’;
cout << grade;
}
 Phân nhánh hai trường hợp: sử dụng if else
if (npoints >= 90)

return a;
}
int max4(int a, int b) {
if (a > b)
return a;
else
return b;
}
int max5(int a, int b) {
if (a > b)
return a;
return b;
}
int max6(int a, int b) {
return (a > b)? a: b;
}
56
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.5.2 Cấutrúcswitch case
Signal input;
int i = 0;
while (i++ < 8) {
input = readInput(i); // read from input module i
switch (input.type) {
case BINARY_8:
cout << input.value.byte; break;
case BINARY_16:
cout << input.value.word; break;
case ANALOG_1:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status