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

7 336 0
Các yếu tố xây dựng nên C và C++ phần 5 potx

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

Thông tin tài liệu

29 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ 2.3.2 Kiểuhằng (const)  Cho phép khai báo như biếnsố, nhưng ₫ượcgángiá trị cố₫ịnh bằng mộthằng số và không thể₫ượcthay ₫ổi => khai báo hằng số void main() { const double pi = 3.1412; // initializing is OK! const int ci = 1; // initializing is OK! ci = 2; // error! ci = 1; // error, too! int i = ci; // const int is a subset of int const Color cc = Red; cc = Green; // error const double d; // potential error } 30 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ 2.3.3 Kiểucon trỏ  Con trỏ thựcchấtlàmộtbiếnchứa ₫ịachỉ củamột ₫ốitượng có thể là mộtbiếnhoặcmộthàm. int v = 2; int* p = &v; // p holds the address of v Con trỏ p Vùng nhớ chứa biến CT 0x000127c3 &v p: chứa ₫ịa chỉ của biến v v: 2 31 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ 2.3.3 Kiểucon trỏ int i = 1; int* p = &i;// p holds the address of i *p = 2; // i = 2 int j; p = &j; // now p holds the address of j *p = 3; // j = 3, i remains 2 32 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Ví dụ sử dụng kiểucon trỏ void main() { int i = 0; int* p = &i; // p refers to the addesss of i int j = *p; // j = 0 *p = 2; // now i = 2 p = &j; // now p contains the addess of j *p = 3; // now j = 3, i remains 2 double d = i; // OK, int is compatible to double p = &d; // error, int* isn’t compatible to double* p = (*int)&d; // no compile error, but dangerous, // meaningles type conversion! double* pd=0; // p contains the address 0 *pd = 0; // no compile error, but fatal error pd = &d; // OK double* pd2; // p refers to an uncertain address *pd2 = 0; // fatal error pd2 = &d; // OK, pd and pd2 refer to the same addr. } 33 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Tóm tắtsơ bộ về con trỏ  Con trỏ là mộtbiếnchứa ₫ịachỉ byte ₫ầucủamộtbiếndữ liệu, ₫ượcsử dụng ₫ể truy cậpgiántiếpdữ liệu ₫ó  Sau khi khai báo mà không khởitạo, mặc ₫ịnh con trỏ mang một ₫ịachỉ bất ₫ịnh  Địachỉ con trỏ mang có thể thay ₫ổi ₫ược => con trỏ có thể mỗi lúc ₫ạidiệnchomộtbiếndữ liệu khác  Toán t ử lấy ₫ịachỉ củamộtbiến(&) trả về con trỏ vào kiểucủa biến=> thường gán cho biếncon trỏ  Toán tử truy nhậpnộidung (*) ápdụng cho con trỏ trả về biến mà con trỏ mang ₫ịachỉ => có thể₫ọchoặcthay₫ổi giá trị của biến ₫ó  Không bao giờ sử dụng toán tử truy nhậpnội dung, nếucon trỏ chưamangmột ₫ịachỉ ô nhớ mà chươ ng trình có quyềnkiểm soát 34 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ 2.3.4 Kiểumảng 012 N-1 Chỉ số ₫ịachỉ cuối ₫ịachỉ₫ầu ₫ịachỉ₫ầu-₫ịachỉ cuối = N * kích cỡ mộtphầntử  Cấutrúcdữ liệuvới: —Số lượng các phầntử cố₫ịnh —Cácphầntử có cùng kiểu —Cácphầntử₫ượcsắpxếpkế tiếptrongbộ nhớ —Cóthể truy nhậptừng phầntử mộtcáchtự do theo chỉ số hoặc theo ₫ịachỉ 35 © 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++ Khai báo mảng  Số phầntử củamảng phảilàhằng số nguyên (trong C phảilàmộttrựckiện, trong C++ có thể là kiểu const )  Khai báo không khởitạo: int a[3]; enum {index = 5}; double b[index]; const int N = 2; char c[N]; // C++ only  Khai báo vớisố phầntử và khởitạo giá trị các phầntử int d[3]= {1, 2, 3}; double e[5]= {1, 2, 3}; char f[4]= {0}; . cuối ₫ịachỉ₫ầu ₫ịachỉ₫ầu-₫ịachỉ cuối = N * kích c mộtphầntử  C utrúcdữ liệuvới: —Số lượng c c phầntử c ₫ịnh C cphầntử c c ng kiểu C cphầntử₫ượcsắpxếpkế tiếptrongbộ nhớ C thể truy nhậptừng phầntử mộtcáchtự do. theo chỉ số ho c theo ₫ịachỉ 35 © 2004, HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + Khai báo mảng  Số phầntử c amảng phảilàhằng số nguyên (trong C phảilàmộttrựckiện, trong C+ + c thể. = Red; cc = Green; // error const double d; // potential error } 30 © 2004, HOÀNG MINH SƠN Chương 2: C c yếutố c bảncủaC v C+ + 2.3.3 Kiểucon trỏ  Con trỏ thựcchấtlàmộtbiếnchứa ₫ịachỉ c amột ₫ốitượng

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

Mục lục

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

  • Nội dung chương 2

  • 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++

  • Tạo dự án

  • 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++

  • Biên dịch (compile)

  • Liên kết (link)

  • 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

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

Tài liệu liên quan