Arrays - Short Flashcards

1
Q

https://www.youtube.com/watch?v=K1yC1xshF40

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Mảng là một cấu trúc dữ liệu cơ bản và chúng cực kỳ hữu ích!

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Chúng tôi sử dụng các mảng để giữ các giá trị cùng loại tại các vị trí bộ nhớ liền kề.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Một cách để tương tự hóa khái niệm mảng là nghĩ về bưu điện địa phương của bạn, nơi thường có rất nhiều hộp thư bưu điện.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Trong C, các phần tử của mảng được lập chỉ mục bắt đầu từ 0.
. Đây là một trong những lý do chính mà chúng tôi đếm từ con số không!

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Nếu mảng gồm n phần tử thì phần tử đầu tiên nằm ở chỉ số 0. Phần tử cuối cùng nằm ở chỉ số (n-1).

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

C rất khoan dung. Nó sẽ không ngăn bạn “vượt quá giới hạn” của mảng của bạn; hãy cẩn thận!

A

Không báo lỗi trong quá trình biên dịch nhưng sẽ gặp lỗi phân đoạn khi chạy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Khai báo mảng:

    type name[size];

Loại là loại biến mà mỗi phần tử của mảng sẽ là.
Tên là những gì bạn muốn gọi cho mảng của mình.
Kích thước là số lượng phần tử bạn muốn mảng của mình chứa.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nếu bạn nghĩ về một phần tử duy nhất của một mảng kiểu dữ liệu giống như bất kỳ biến kiểu dữ liệu nào khác (thực tế, nó là như vậy) thì tất cả các thao tác quen thuộc đều có ý nghĩa.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Khi khai báo và khởi tạo một mảng đồng thời, có một cú pháp đặc biệt có thể được sử dụng để lấp đầy mảng với các giá trị bắt đầu của nó.

// instantiation syntax
bool truthtable[3] = { false, true, true };

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Có thể trở nên cồng kềnh khi khai báo một mảng có kích thước 100, rồi phải nói, phần tử 0 bằng cái này; phần tử 1 bằng cái này; phần tử 2 bằng đó.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Mảng có thể bao gồm nhiều hơn một chiều. Bạn có thể có nhiều thông số kích thước như bạn muốn.
bool battleship[10][10];
Bạn có thể chọn coi đây là một lưới ô 10x10.
Tuy nhiên, trong bộ nhớ, nó thực sự chỉ
là một mảng một chiều 100 phần tử.
Mảng đa chiều là sự trừu tượng hóa
tuyệt vời để giúp trực quan hóa bảng trò
chơi hoặc các biểu diễn phức tạp khác.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Mặc dù chúng ta có thể coi các phần tử riêng lẻ của mảng là biến, nhưng chúng ta không thể coi toàn bộ mảng là biến.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Chẳng hạn, chúng ta không thể gán một mảng cho một mảng khác bằng cách sử dụng toán tử gán. Điều đó không hợp pháp C.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Thay vào đó, chúng ta phải sử dụng một vòng lặp để sao chép từng phần tử một.
Trong những ngôn ngữ lập trình khác, những ngôn ngữ hiện đại, bạn có thể thực hiện bằng cú pháp bằng. Nhưng trong C thì không được.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hàm callee, hàm nhận biến,
không nhận được biến chính nó.
Nó có bản sao cục bộ của chính nó để làm việc cùng.

A
17
Q

Nhớ lại rằng hầu hết các biến trong C đều được truyền theo giá trị trong các lời gọi hàm.

A
18
Q

Mảng không tuân theo quy tắc này. Thay vào đó, chúng được chuyển qua tham chiếu. Callee nhận mảng thực, không phải bản sao của nó.
Điều đó có nghĩa là gì khi callee thao tác
các phần tử của mảng?

Việc này cũng có thể gọi là passing by reference. Mảng cồng kềnh nên chuyển nó bằng tham chiếu. Mảng được truyền theo tham chiếu và mọi thứ khác được truyền theo giá trị.

A
19
Q

Hiện tại, chúng ta sẽ tìm hiểu lý do tại sao mảng có thuộc tính đặc biệt này, nhưng chúng ta sẽ sớm quay lại với nó!

A