Xin chào và chào mừng.
Trong bài giảng này, chúng ta sẽ nói về mảng có độ dài thay đổi.
Chính xác điều này có nghĩa là gì?
Chà, đây là một tính năng mới mà tôi nghĩ rằng đã được thêm vào cho C99.
Nhưng cho đến thời điểm này, tất cả chúng ta biết về mảng, bên
cạnh tính đa chiều và bên cạnh đó là một tính năng thú vị, nơi bạn có
thể lưu trữ nhiều phần tử dữ liệu trong một biến duy nhất về cơ bản, là
chúng có kích thước cố định.
Khi bạn chỉ định kích thước đó, bạn phải sử dụng một hằng số được mã hóa cứng.
Khi bạn khai báo biến chỉ định kích
thước và nó vẫn như cũ.
Mảng có độ dài thay đổi là một chút sai lầm.
Nó không có nghĩa là bạn sẽ thay đổi kích thước của mảng động.
Nó vẫn sẽ như cũ nhưng bây giờ bạn có thể sử dụng các biến.
Vì vậy, thuật ngữ biến trong biến mảng độ dài không có nghĩa là bạn có thể sửa đổi
độ dài của mảng sau khi bạn tạo nó.
Điều đó có nghĩa là bây giờ bạn có thể đặt một biến để sử dụng cho mảng đó.
vì vậy, một VLA vẫn sẽ giữ cùng kích thước sau khi tạo.
Mảng biến cho phép bạn chỉ định kích thước và mảng
với một biến khi tạo mảng.
Vì vậy, bạn chỉ có thể sử dụng các biến, đó là tất cả những gì nó thực sự có nghĩa.
Có vẻ như nó có thể không hữu ích.
Nhưng thực ra lý do duy nhất nó thực sự được thêm vào là vì
nó đã giúp thực sự tồn tại thư viện và các ngôn ngữ khác.
Vì vậy, C99 đã giới thiệu tính năng và nó được sử dụng và đó là lý do tại sao tôi
muốn đề cập đến nó.
Tôi sẽ chỉ đề cập đến nó ngắn gọn, tôi sẽ không
cung cấp trường hợp sử dụng chi tiết của nó.
Tôi chỉ muốn nói với bạn rằng tồn tại bởi vì đôi khi
bạn thấy thuật ngữ này có độ dài biến mảng khá nhiều khi bạn đang đọc về c.
Và tôi không muốn bạn nhìn thấy nó và nói điều này có nghĩa
là gì khi chúng tôi nghiên cứu các mảng và chúng tôi đã không đề cập đến chủ đề này.
Vì vậy, nó được giới thiệu chủ yếu để làm cho c trở thành một ngôn ngữ tốt
hơn cho tính toán số.
VLA là mảng có độ dài thay đổi giúp chuyển đổi các thư viện
hiện có của Fortran dễ dàng hơn rất nhiều các thói quen tính toán số để c.
Vì vậy, đây là lý do tại sao nó được thêm vào.
Vì vậy, nếu bạn là một Fortran lập trình viên, bạn có
thể muốn sử dụng cái này khi di chuyển hoặc nếu bạn đang chuyển đổi mã.
Nếu bạn đang chuyển Fortran của mình mã đang cố
gắng chuyển đổi sang c, bạn có thể muốn sử dụng mã này.
Bạn không thể khởi tạo một VLA trong khai báo của nó.
Vì vậy, không có khởi tạo khi bạn đang nói về
mảng có độ dài thay đổi.
Đây là một số kích thước hợp lệ mà bạn có thể áp dụng khi khai báo mảng.
Vì vậy, chúng tôi có thể khai báo hai biến và một m.
Và sau đó bạn thấy ở dưới cùng khi chúng ta nói float 8 và float a9, chúng ta có thể
sử dụng các biến đó khi chúng tôi khai báo chúng trong kích thước mảng.
Và điều đó không được phép trước đây C99 nhưng bây giờ nó
là và đó là VLA, mảng độ dài thay đổi.
Chỉ định một biến cho được sử dụng bên trong một mảng.
Nó không thay đổi kích thước trong thời gian chạy.
Có những ví dụ khác hợp lệ ở đây khai báo các mảng mà bạn có thể
muốn chú ý đến.
Hoàn toàn tốt nếu bạn đang thiết lập mảng đến một kích thước cụ thể, chẳng hạn như 5.
Bạn có thể sử dụng các biểu thức khi bạn chỉ định kích thước của một mảng.
Vì vậy, trong ví dụ 5 tiếp theo nhân 2 cộng với 1 cũng được.
Điều khác cần chú ý ở đây là chúng tôi đang sử dụng toán tử sizeof và điều đó cũng
hoàn toàn ổn vì điều đó sẽ trả về một int.
Sizeof int sẽ trả về 4 hoặc 8 tùy thuộc vào máy bạn đang sử dụng
và sau đó bạn thêm 1 vào nó, hoàn toàn tốt.
Đặt một số âm bên trong khai báo của một mảng,
bạn không thể làm điều đó.
Không có cái gọi là tiêu cực 4.
Kích thước của mảng phải lớn hơn 0.
Vì vậy, số không cũng sẽ không hoạt động.
2. 5 đặt phao, không thể làm điều đó hoặc, nó không có ý nghĩa.
Làm thế nào bạn có thể tạo một mảng có kích thước 2. 5.
Tuy nhiên, nếu bạn đặt 2. 5 bên trong dấu ngoặc vuông và bạn
chuyển nó thành int, không sao cả.
Một lần nữa không muốn chi tiêu nhiều thời gian trên mảng có độ dài thay
đổi, tôi chỉ muốn giới thiệu khái niệm.
Nếu bạn nghe thấy thuật ngữ này, Bạn biết nó là gì.
Gán các biến cho một mảng khi khai báo chúng cho kích thước.
Thực sự chỉ được giới thiệu để tương thích với các
thư viện Fortran hiện có. Cảm ơn bạn.