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

7 437 0
Các yếu tố xây dựng nên C và C++ phần 8 ppsx

Đang tải... (xem toàn văn)

Thông tin tài liệu

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; double lreal; }; struct Signal { SignalType type; SignalValue value; }; void main() { SignalValue B,W; B.byte = 0x01; W.word = 0x0101; unsigned char b = W.byte; // OK, the lower byte float f = W.real; // meaningless Signal DI1 = {BINARY_8, 0x11}; Signal AI1 = {ANALOG_1,{0}}; Signal AI2; AI2.type = ANALOG_2; AI2.value.lreal = 145.67; } 52 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Tóm lượcvề hợpnhất  Hợpnhất (union) là mộttậphợp (không có cấutrúcchặtchẽ) chứa các biếnsử dụng chung ô nhớ, ở mỗingữ cảnh chỉ sử dụng mộtbiếnriêngbiệt  Union thường ₫ượcsử dụng khi dữ liệu ₫ầuvàocóthể có kiểu khác nhau  Các thành viên củamột union không liên quan ₫ến nhau, không cùng nhau tạothànhmộtthựcthể thống nhất  Kích cỡ củaunion bằng kích cỡ 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) cout << ‘A’; else if (npoints >= 80) cout << ‘B’; else if (npoints >= 70) cout << ‘C’; else if (npoints >= 60) cout << ‘D’; else cout << ‘F’; 55 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Ví dụ: Hàm max() int max1(int a, int b) { int c; if (a > b) c = a; else c = b; return c; } int max2(int a, int b) { int c = a; if (a < b) c = b; return c; } int max3(int a, int b) { if (a < b) a = b; 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: cout << input.value.real; break; case ANALOG_2: cout << input.value.lreal; break; default: cout << "Unknown signal type"; } } . 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 . 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& gt;= tổng kích c . HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + Tóm lượcvề hợpnhất  Hợpnhất (union) là mộttậphợp (không c c utrúcchặtchẽ) chứa c c biếnsử dụng chung ô nhớ, ở mỗingữ c nh chỉ sử dụng mộtbiếnriêngbiệt 

Ngày đăng: 31/07/2014, 04:20

Mục lục

  • Kỹ thuật lập trình

  • 2.1 Tổ chức chương trình C/C++

  • 2.1 Tổ chức chương trình C/C++

  • Chương trình tính giai thừa: Phiên bản C

  • Chương trình tính giai thừa: Phiên bản C++

  • Bổ sung file mã nguồnvà soạn thảo

  • Qui tắc soạn thảo mã nguồn

  • Các từ khóa trong C

  • Từ khóa trong C++

  • Chạy thử và gỡ rối (debug)

  • Tổ chức bộ nhớ

  • 2.2 Biến và dữ liệu

  • 2.2.1 Các kiểu dữ liệu cơ bản của C/C++

  • Các phép toán cơ bản

  • Tương thích và chuyển đổi kiểu

  • Nhìn nhận về chuyển đổi kiểu

  • Nhìn nhận về chuyển đổi kiểu

  • Ví dụ khai báo các loại biến

  • Đặc tính lưu giữ

  • 2.2.3 Hằng số (trực kiện)

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan