Xin chào và chào mừng.
Trong bài giảng này, tôi muốn nói về việc khởi tạo một mảng.
Chúng tôi biết cách sử dụng một mảng, chúng ta biết cách tạo một mảng.
Nhưng cụ thể, nếu bạn muốn để gán các giá trị ban đầu cụ thể cho mảng, bạn
làm như thế nào?
Vì vậy, bạn sẽ muốn chỉ định ban đầu giá trị cho các phần tử của mảng của
bạn hầu hết thời gian.
Lý do mà bạn muốn gán các giá trị ban đầu cho một
mảng hoặc thậm chí cho các biến là vì nó giúp bạn dễ dàng phát hiện
ra khi có sự cố.
Khi bạn không có dữ liệu ban đầu và bạn cố gắng làm điều gì đó, bạn có thể gây ra
sự cố trong chương trình của mình.
Vì vậy, khởi tạo là một rất tốt và bạn luôn muốn làm điều đó.
Và bằng cách sử dụng một mảng, có nhiều, nhiều phần tử trong mảng.
Và vì vậy có một cách cụ thể để bạn có thể khởi tạo các phần tử đó.
Có khác nhau cú pháp mà bạn có thể sử dụng.
Nhưng khởi tạo là một điều tốt và bạn luôn muốn làm điều đó.
Tôi muốn nhanh chóng nói chuyện như thế nào bạn có thể thực hiện một mảng vì có
nhiều cách khác nhau để thực hiện.
Vì vậy, cũng như bạn có thể chỉ định ban đầu giá trị cho các biến,
khi chúng được khai báo, bạn cũng có thể gán giá trị ban đầu cho
các phần tử của mảng, khi nó được khai báo.
Để khởi tạo các giá trị của một mảng, bạn chỉ cần cung cấp các giá trị trong một danh sách.
Danh sách được phân tách bằng dấu phẩy và toàn bộ danh sách được đặt bên
trong một cặp dấu ngoặc nhọn.
Nó trông giống như thế này.
Ở đây chúng tôi đang tạo ra một mảng có tên bộ đếm.
Nó thuộc loại int, nó có 5 phần tử.
Và sau đó những gì chúng tôi đang làm là chúng tôi có dấu ngoặc nhọn và chúng
tôi không sử dụng bất kỳ chỉ mục nào ở đây.
Bạn sẽ nhận thấy rằng chúng tôi chỉ có các số cách nhau bằng dấu phẩy.
Điều này đang làm là nó đang thiết lập tất cả 5 phần tử trong mảng
bộ đếm bằng 0, mỗi phần tử bằng 0.
Nếu chúng ta có một mảng khác và chúng ta đặt tên mảng này số nguyên và nó cũng có
kích thước 5 và sau đó chúng tôi có dấu ngoặc nhọn sau toán
tử gán 0 dấu phẩy 1 dấu phẩy 2 dấu phẩy 3 dấu phẩy 4, đó là làm gì?
Nó chỉ định số nguyên đầu tiên mảng số nguyên phần tử thành 0,
phần tử thứ hai thành 1, phần tử thứ ba phần tử thành 2, phần tử thứ tư thành 3
và phần tử thứ năm thành 4.
Đó là một cú pháp tuyệt vời mà bạn có thể ngay lập tức khởi tạo mảng khi bạn
khai báo nó bằng cách cung cấp các số được phân tách bằng dấu phẩy bên trong dấu ngoặc
và bạn muốn thực hiện việc này.
Nó cũng không cần thiết phải hoàn toàn khởi tạo toàn bộ mảng.
Vì vậy, trong 2 trước đó ví dụ, chúng tôi đã khởi tạo tất cả
5 phần tử của một mảng có kích thước 5.
Điều gì xảy ra nếu bạn chỉ muốn khởi tạo một số giá trị?
Nếu bạn cung cấp các giá trị ban đầu không bằng số kích thước của mảng, thì các giá trị còn lại được đặt thành 0.
Vì vậy, nếu bạn làm điều gì đó như đây là nơi bạn
có một mảng được gọi là dữ liệu mẫu kiểu dòng chảy, nó chứa 500 phần tử.
Nhưng trong dấu ngoặc nhọn, tất cả bạn thấy đây là 3 yếu tố của chúng tôi.
Điều này sẽ làm là nó sẽ khởi tạo
3 giá trị đầu tiên của mẫu mảng dữ liệu đến 100 300 500. 5.
Và sau đó là 5 497 còn lại các phần tử sẽ bằng 0.
Vì vậy, bạn không cần phải chỉ định mọi thứ.
Cũng có khái niệm này của một trình khởi tạo được chỉ định.
Điều này đã được giới thiệu Tôi tin vào C99.
Đó là một tính năng nhỏ thú vị mà bạn có thể chọn và chọn các phần tử của bạn
mà bạn muốn khởi tạo.
Tôi nghĩ rằng trong C99, họ đã thêm nó và thì trong C11, họ đã biến nó thành tùy chọn.
Vì vậy, tùy thuộc vào trình biên dịch nào bạn có, bạn có thể
hoặc không thể làm điều này.
Nhưng tôi muốn đề cập đến nó vì nó hơi phổ biến.
Một số trình biên dịch sẽ không cho phép bạn làm điều này sau C99.
Nhưng thật tuyệt vì bạn có thể thực ra chỉ cần chọn và chọn.
Vì vậy, bạn có thể bao gồm một phần tử đánh số trong một cặp dấu ngoặc và sau đó chỉ định các
phần tử mảng có thể được khởi tạo và bạn có thể thực hiện
theo bất kỳ thứ tự nào.
Vì vậy, đây là một ví dụ.
Một lần nữa, chúng tôi có mảng dữ liệu mẫu của chúng tôi.
Nó thuộc loại phao.
Nó sẽ có kích thước 500.
Nhưng ở đây bên trong xoăn của chúng ta niềng răng, chúng tôi có các chỉ mục bổ sung.
Chúng tôi có dấu ngoặc của chúng tôi trong 2, nói dấu ngoặc 2 phụ 2 bằng 500. 5, phụ 1 bằng
300. 0 và con 0 bằng 100. 0.
Chúng được phân tách bằng dấu phẩy.
Tất cả những gì điều này đang làm là nó chỉ định điều tương tự mà chúng ta đã có
trong ví dụ trước, nhưng nó làm điều đó theo một thứ tự khác.
Nhưng bạn vẫn sẽ có phần tử 0 hoặc phần tử đầu tiên bằng
100, phần tử thứ hai phần tử bằng 300 và album thứ ba
bằng 500. 5.
Nhưng chúng tôi đang chỉ định chỉ số nào để khởi tạo ngay
trong dấu ngoặc nhọn.
Một ví dụ khác ở đây chúng tôi có một int mảng được gọi là arr, nó có kích thước 6.
Và khi chúng tôi tuyên bố nó, chúng tôi khởi tạo phần tử
thứ năm là phần tử cuối cùng thành 212, tất cả các phần tử sẽ bằng 0.
Vì vậy, đây là một ví dụ về truyền thống khởi tạo trong đó bạn chỉ cần
khai báo tên mảng của mình và bạn cung cấp nhiều số lượng khác nhau.
Trong ví dụ này, chúng tôi đang khai báo một mảng và nó
sẽ lưu trữ tất cả các ngày trong mỗi tháng.
Và vì vậy khi chúng ta trải qua điều này mảng và chúng
tôi in nó ra, điều này rất phổ biến, bạn thường sử dụng vòng lặp để in ra các phần tử
trong mảng hoặc ít nhất là lặp qua chúng.
Những gì chúng tôi đang làm ở đây là chúng tôi chỉ sẽ in ra mỗi
tháng và nó có bao nhiêu ngày.
Vì vậy, chúng ta hãy xem xét vấn đề này trong mã để hiển thị cho bạn kết quả đầu ra.
Vì vậy, đây là ví dụ của chúng tôi.
Chúng ta có ngày và tháng và chúng tôi đang khởi tạo mảng.
Yếu tố đầu tiên là 31, 28 tiếp theo, 31 tiếp theo.
Bạn cũng nhận thấy ở dòng 10, chúng tôi sử dụng định nghĩa để tạo một hằng số.
Và bằng cách ở c, bạn cũng có thể sử dụng một từ khóa không đổi, mà chúng ta sẽ nói
về và những thứ khác, đó là một cách khác để tạo hằng số.
Nhưng hiện tại chúng ta chỉ đang nói chuyện về
mảng và khởi tạo chúng, rất dễ thực hiện, tách biệt bởi dấu phẩy bên trong dấu ngoặc nhọn.
Vì vậy, những gì điều này sẽ hiển thị
nó sẽ đi qua mảng và nó sẽ xem xét chỉ số cộng với 1 và sau đó là chỉ số ngày.
Vì vậy, nó sẽ nói tháng 1 có bao nhiêu ngày tùy thuộc vào giá trị là
bao nhiêu.
Vì vậy, chúng tôi đang truy cập chỉ mục theo tên mảng và sau đó là giá trị chỉ
số con, chỉ số giá trị và chúng tôi đang sử dụng một mảng.
Vì vậy, nó là một biến thay đổi qua mỗi lần lặp lại.
Vì vậy, chúng tôi cố gắng chạy điều này.
Đầu ra mà bạn sẽ xem là tháng một có 31 ngày, tháng 2 có 28 ngày, loại đại diện
Tháng 1 Tháng 2 Tháng 3 Tháng 4, nhưng nó chỉ trải
qua mảng và in các ngày ra.
Vì vậy, điều này chứng minh rằng khởi tạo hoạt động.
Và một lần nữa, bạn sẽ muốn để khởi tạo dữ liệu của bạn.
Bây giờ chúng ta hãy nói về một ví dụ và nói về các phần
tử khởi tạo lặp lại.
Vì vậy, đây sẽ là một ví dụ khác, nhưng trong ví dụ này, chúng ta sẽ
sử dụng một trình khởi tạo được chỉ định.
Chúng tôi sẽ chỉ định chính xác phần tử mà chúng ta muốn khởi tạo.
Vì vậy, dòng chính mà bạn nên thông báo ở đây là một
trong những ngày và tháng, nơi chúng tôi đang thực hiện quá trình khởi tạo.
Bạn sẽ nhận thấy bên trong xoăn dấu ngoặc
mà phần tử đầu tiên nhận được 31, phần tử thứ hai là 28, nhưng sau đó có một
cái gì đó bên trong dấu ngoặc cho biết 4, nó sẽ nhận giá trị 31.
Sau đó, chúng tôi có một dấu phẩy, phần tử 5 sẽ nhận được 30,
phần tử 6 sẽ nhận được 31.
Và sau đó chúng tôi có 1.
Điều này có nghĩa là bây giờ chúng ta sẽ ghi đè 28, và chúng tôi thực
sự sẽ đặt 29, đặt nó là 29.
Vì vậy, nó hơi thừa ở đây.
Chúng tôi không thực sự cần phải làm điều đó, nhưng
bạn sẽ thực sự loại bỏ tiểu số 1 vì 31 và 28, sub-1 đã được chỉ định ở đây.
Nhưng có vẻ như chúng ta đang nói sub-1 cũng có thể là giá trị 29.
Vì vậy, đây chỉ là sử dụng các trình khởi tạo được chỉ định.
Còn nếu chúng ta muốn lặp lại cùng một giá trị.
Bây giờ trong c, bạn luôn có thể khởi tạo toàn bộ mảng có
cùng giá trị nếu bạn chỉ định 0.
Bạn luôn có thể khởi tạo nó giống như tham số null.
Nhưng khác với điều đó, c không cung cấp bất kỳ cơ chế phím tắt nào
để khởi tạo mảng , ít nhất là không có trong C89.
Bạn có thể thấy trong C11, một lần nữa, nơi bạn có thể khởi tạo cùng một giá trị cho toàn bộ
mảng chỉ bằng cách sử dụng dấu ngoặc không có chỉ số phụ chỉ là số.
Nhưng ngay bây giờ trong C89 và C99, có không có cách nào để chỉ định số lần lặp lại.
Không có cách nào để nói tất cả các yếu tố của tia này phải là 55, chẳng hạn.
Vì vậy, nếu nó được mong muốn ban đầu đặt tất cả 500 giá trị
của dữ liệu mẫu thành 1, tất cả 500 sẽ có được chỉ định một cách rõ ràng, đó sẽ là
một cơn đau lớn ở mông.
Vì vậy, những gì bạn sẽ làm là bạn sẽ chỉ cần đặt chúng bên trong một vòng lặp.
Cách dễ nhất để lặp lại thông qua một mảng sử dụng một vòng lặp.
Đây là một ví dụ nhanh về cách bạn có thể khởi tạo tất cả các phần
tử thành cùng một giá trị.
Tuy nhiên, trong trường hợp này, chúng tôi khởi tạo
các phần tử đầu tiên thành 0 1 4 9 và 16.
Vì vậy, đây thực sự chỉ là khởi tạo tất cả các phần tử còn lại thành một giá trị.
Về cơ bản, yếu tố thứ 6 của Phần tử thứ 10 sử dụng chỉ số 5 đến 9.
Vì vậy, đó là những gì mà vòng lặp for này đang làm.
Vòng lặp for đầu tiên nói rằng chúng ta sẽ khởi tạo các phần tử
từ 5 đến 9 thành I lần I.
Và sau đó là thứ hai cho vòng lặp ở đây,
nó nên được thụt vào, khó đọc hơn.
Vòng lặp for thứ hai thực sự là đi qua toàn
bộ mảng và chỉ hiển thị dữ liệu cho cho bạn thấy rằng 5 giá trị cuối
cùng đã thực sự được khởi tạo.
Vì vậy, bất cứ khi nào bạn muốn lặp lại cùng một giá trị hoặc khởi tạo thành các
giá trị khác nhau, chỉ cần sử dụng một vòng lặp.
Một lần nữa, khởi tạo là quan trọng.
Bạn sẽ muốn khởi tạo, vì vậy đảm bảo rằng cú pháp này là bản chất thứ hai
cho bạn vì chúng tôi sẽ được sử dụng mảng khá nhiều trong c.