TÓM TẮT SESSION 11: Arrays ( Mảng )
------ TÓM TẮT SESSION 11: Arrays ( Mảng ) ---
+ Mảng là: Một mảng là một tập hợp các phần tử dữ liệu có cùng kiểu. Mỗi phần tử được lưu trữ ở các vị trí kế tiếp nhau trong bộ nhớ chính. Những phần tử này được gọi là phần tử mảng.
+ Khai báo 1 mảng: Một mảng có một vài đặc tính riêng biệt và phải được khai báo khi sử dụng chúng. Những đặc tính này bao gồm:
+ Mảng là: Một mảng là một tập hợp các phần tử dữ liệu có cùng kiểu. Mỗi phần tử được lưu trữ ở các vị trí kế tiếp nhau trong bộ nhớ chính. Những phần tử này được gọi là phần tử mảng.
+ Khai báo 1 mảng: Một mảng có một vài đặc tính riêng biệt và phải được khai báo khi sử dụng chúng. Những đặc tính này bao gồm:
Ø
Lớp
lưu trữ ( the strong class)
Ø
Kiểu
dữ liệu ( the data tyde): của các phần
tử mảng.
Ø
Tên
mảng ( Tên mảng) : xác định
vị trí phần tử đầu tiên của mảng.
Ø
Kích
thước mảng ( array size) : một hằng
số có giá trị nguyên dương.
+Cú pháp tổng quát khai báo một mảng như sau: storage_class data_type array_name[size_expr].
+ Việc quản lý mảng
trong C: Một mảng được “đối xử” khác với một biến trong C. Thậm chí hai
mảng có cùng kiểu và kích thước cũng không thể tương đương nhau. Hơn nữa, không
thể gán một mảng trực tiếp cho một mảng khác. Thay vì thế, mỗi phần tử mảng
phải được gán riêng lẻ tương ứng với từng phần tử của mảng khác. Các giá trị
không thể được gán cho toàn bộ một mảng, ngoại trừ tại thời điểm khởi tạo. Tuy
nhiên, từng phần tử không chỉ có thể được gán trị mà còn có thể được so sánh.
+ việc khởi tạo mảng: Các mảng không được khởi tạo tự động, trừ khi mỗi phần tử mảng được
gán một giá trị riêng lẻ. Không nên dùng các mảng trước khi có sự khởi tạo
thích hợp. Điều này là bởi vì không gian lưu trữ của mảng không được khởi tạo tự
động, do đó dễ gây ra kết quả không lường trước. Mỗi khi các phần tử của một
mảng chưa khởi tạo được sử dụng trong các biểu thức toán học, các giá trị đã
tồn tại sẵn trong ô nhớ sẽ được sử dụng, các giá trị này không đảm bảo rằng có
cùng kiểu như khai báo của mảng, trừ khi các phần tử của mảng được khởi tạo một
cách rõ ràng. Điều này đúng không chỉ cho các mảng mà còn cho các biến thông
thường.
+ Các
mảng chuỗi/ký tự: Một chuỗi có thể được khai báo như là một
mảng ký tự, và được kết thúc bởi một ký tự NULL. Mỗi ký tự của chuỗi chiếm 1
byte, và ký tự cuối cùng của chuỗi luôn luôn là ký tự ‘\0’. Ký tư ‘\0’ được gọi
là ký tự null. Nó là một mã thoát (escape sequence) tương tự như ‘\n’, thay thế cho ký tự có giá
trị 0. Vì ‘\0’ luôn là ký tự cuối cùng của một chuỗi, nên các mảng ký tự phải
có nhiều hơn một ký tự so với chiều dài tối đa mà chúng quản lý.
+ Mảng hai chiều: Chúng ta đã biết thế nào là mảng một chiều. Điều này có
nghĩa là các mảng chỉ có một chỉ số. Các mảng có thể có nhiều hơn một chiều.
Các mảng đa chiều giúp dễ dàng trình bày các đối tượng đa chiều, chẳng
hạn một đồ thị với các dòng và cột hay tọa độ màn hình của máy tính. Các mảng
đa chiều được khai báo giống như các mảng một chiều, ngoại trừ có thêm một cặp
dấu ngoặc vuông [] trong trường hợp mảng hai chiều. Một mảng ba chiều sẽ cần ba
cặp dấu ngoặc vuông,... Một cách tổng quát, một mảng đa chiều có thể được biểu
diễn như sau:
storage_class
data_type ary[exp1][exp2]....[expN];
+ Khởi tạo mảng đa
chiều: Khai báo mảng đa chiều có thể kết hợp với việc gán các giá trị
khởi tạo. Cần phải cẩn thận lưu ý đến thứ tự các giá trị khởi tạo được gán cho các
phần tử của mảng (chỉ có mảng external
và static có thể được khởi tạo). Các
phần tử trong dòng đầu tiên của mảng hai chiều sẽ được gán giá trị trước, sau
đó đến các phần tử của dòng thứ hai, … Hãy xem sự khai báo mảng sau:
int ary[3][4]
={1,2,3,4,5,6,7,8,9,10,11,12};
Comments
Post a Comment