1. Trang chủ
  2. » Công Nghệ Thông Tin

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

7 12 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 417,62 KB

Nội dung

Khai báo mảng (tiếp) Khai báo và khởi tạo giá trị các phần tử, số phần tử ₫ược tự ₫ộng xác ₫ịnh int double double char a[]= b[]= c[]= s[]= {1, 2, 3, 4, 5}; {1, 2, 3}; {0}; {‘a’};

Khai báo mảng (tiếp) ƒ Khai báo khởi tạo giá trị phần tử, số phần tử ₫ược tự ₫ộng xác ₫ịnh int double double char a[]= b[]= c[]= s[]= {1, 2, 3, 4, 5}; {1, 2, 3}; {0}; {‘a’}; ƒ Khai báo mảng nhiều chiều © 2004, HỒNG MINH SƠN double M[2][3]; int X[2][]={{1,2},{3,4},{5,6}}; short T[2][2]={1,2,3,4,5,6}; Chương 2: Các yếu tố C C++ 36 Ví dụ sử dụng kiểu mảng © 2004, HỒNG MINH SƠN void main() { int a[5]; // a has elements with uncertain values int b[5]= {1,3,5,7,9}; // elements with initial values double c[]; // error, unspecified size double x = 1.0, y = 2.0; double d[]= {x,y,3.0}; // elements with initial values short n = 10; double v[n]; // error, array size must be a constant! const int m=10; // C++ OK double v2[m]; // C++ OK a[0] = 1; int i= 1; a[i] = 2; a[5] = 6; // no compile error, but fatal error int k = a[5]; // no compile error, but fatal error a = {1,2,3,4,5}; // error a = b; // error, cannot assign array int M[2][3]; M[0][1] = 0; M[0][2] = 1; } Chương 2: Các yếu tố C C++ 37 Mảng ₫ặc biệt: Chuỗi ký tự ƒ Trong C/C++, chuỗi ký tự kiểu bản, mà thực chất mảng ƒ Phân biệt chuỗi ký tự thường chuỗi ký tự kết char city1[]= {'H','A','N',' ','O','I‘}; char city2[]= "HA NOI"; wchar_t city3[]= L"HÀ NOI"; city2[] = “HANOI”; // error © 2004, HOÀNG MINH SƠN ƒ Đa số hàm thư viện C làm việc với chuỗi ký tự kết ƒ Với C++, chuỗi ký tự ₫ược ₫ịnh nghĩa lớp string thư viện chuẩn, không sử dụng byte kết Chương 2: Các yếu tố C C++ 38 Mảng trỏ © 2004, HOÀNG MINH SƠN void main() { int a[5]; int* p; p = a; p = &a[0]; *p = 1; ++p; *p = 2; p++; *p = 3; p += 2; *p = 5; ++p; *p = 6; a = p; // a has elements with // uncertain values // // // // // // // // // // // // p refers to a[0] the same as above a[0]=1 now p points to a[1] a[1]=2 now p points to a[2] a[2]=3 now p points to a[4] a[4] = OK, no problem until we dereference it Now is a BIG BIG problem! error, a is like a constant pointer } Chương 2: Các yếu tố C C++ 39 Mảng trỏ (tiếp) void main() { int a[5]; int* p p[0] = p[1] = p+= 2; p[0] = p[1] = p[3] = = a; 1; 2; 3; 4; 6; // // // // // // // // // a has elements with uncertain values p points to a[0] a[0]=1 a[1]=2 now p points to a[2] a[2]=3 a[3]=4 a[5]=6, Now is a BIG BIG problem! © 2004, HOÀNG MINH SƠN } Chương 2: Các yếu tố C C++ 40 Tóm lược mảng © 2004, HỒNG MINH SƠN ƒ Mảng tập hợp liệu kiểu, xếp liền kề nhớ => phần tử mảng ƒ Có thể truy cập phần tử mảng với biến mảng kèm theo số với biến trỏ (theo ₫ịa phần tử) ƒ Số phần tử mảng cố ₫ịnh (khi khai báo phải số), không thay ₫ổi ₫ược ƒ Biến mảng (tĩnh) thực chất trỏ hằng, mang ₫ịa phần tử ₫ầu tiên ƒ Có thể ₫ặt giá trị ₫ầu cho phần tử mảng qua danh sách khởi tạo, không gán ₫ược mảng cho Nếu cần chép hai mảng phải sử dụng hàm ƒ Khơng ₫ược phép truy nhập với số nằm phạm vi, N số phần tử phạm vi cho phép từ N-1 ƒ Con trỏ khơng mảng, mang ₫ịa mảng sử dụng ₫ể quản lý mảng (dù ₫ộng hay tĩnh) Chương 2: Các yếu tố C C++ 41 2.3.5 Kiểu tham chiếu (C++) © 2004, HỒNG MINH SƠN ƒ Một biến tham chiếu biến ₫ại diện trực tiếp cho biến khác (thay cho trỏ) ƒ Ý nghĩa sử dụng chủ yếu sau truyền tham số cho hàm void main() { double d = 2.0; double& r = d; // r represents d double *p1 = &d, *p2 = &r; r = 1.0; // OK, d = 1.0 double& r2; // error, r has to be assigned to a var double& r3 = 0; // error, too double d2 = 0; r = d2; // r = 0, d=0 r = 1.0; // r = d = 1, d2 =0 } Chương 2: Các yếu tố C C++ 42 ... error, cannot assign array int M[2][3]; M[0][1] = 0; M[0][2] = 1; } Chương 2: C? ?c yếu tố C C++ 37 Mảng ₫? ?c biệt: Chuỗi ký tự ƒ Trong C/ C++, chuỗi ký tự kiểu bản, mà th? ?c chất mảng ƒ Phân biệt chuỗi... hay tĩnh) Chương 2: C? ?c yếu tố C C++ 41 2.3.5 Kiểu tham chiếu (C+ +) © 2004, HỒNG MINH SƠN ƒ Một biến tham chiếu biến ₫ại diện tr? ?c tiếp cho biến kh? ?c (thay cho trỏ) ƒ Ý nghĩa sử dụng chủ yếu sau... số hàm thư viện C làm vi? ?c với chuỗi ký tự kết ƒ Với C+ +, chuỗi ký tự ₫ư? ?c ₫ịnh nghĩa lớp string thư viện chuẩn, không sử dụng byte kết Chương 2: C? ?c yếu tố C C++ 38 Mảng trỏ © 2004, HOÀNG MINH

Ngày đăng: 10/05/2021, 14:13