Tại sao for mảng từ 0?

em hỏi là sao mảng lại dùng for i=0;i<n
nếu thay for i=1;i<=n thì có vấn đề j về sau kh ạ
e cảm ơn

Vì trong hầu hết các ngôn ngữ, mảng bắt đầu từ 0, trừ 1 số ít ngôn ngữ bắt đầu từ 1.
Zero-based index.

6 Likes
  • Martin Richards, người tạo ra ngôn ngữ BCPL (tiền thân của C), đã thiết kế các mảng bắt đầu từ 0 làm vị trí tự nhiên để bắt đầu truy cập nội dung mảng trong ngôn ngữ, vì giá trị của con trỏ p được sử dụng làm địa chỉ truy cập vị trí p + 0 trong bộ nhớ
  • Tham khảo thêm tại đây : https://en.wikipedia.org/wiki/Zero-based_numbering
  • Đầu tiên em hãy tập quen với điều đó và đừng đau đầu nữa. Vì khi bạn gia nhập bất cứ điều gì, đều có những điều khác biệt.
  • Vấn đề về sau tất nhiên sẽ xảy ra, khi bạn đã thay đổi điều gần như là mặc định trong lập trình
9 Likes
  • Trong C/C++ và một số ngôn ngữ khác thì array có index nhỏ nhất là 0, nên phải duyệt mảng từ 0, nếu duyệt từ 1 thì index cuối cùng sẽ vượt khỏi mảng.
  • Một số ngôn ngữ khác có base index = 1 như matlab thì bạn lại phải duyệt từ 1. Nó là quy định rồi, buộc phải tuân thủ.
4 Likes

như nhà lầu có số tầng có người thích gọi tầng 1 là tầng ngay trên tầng trệt ấy :V Có người thích gọi tầng trệt là tầng 1…

5 Likes

bạn cũng có thể khởi tạo i từ 1 để dễ thao tác trong 1 số trường hợp tuỳ ý nhưng cần đảm bảo bộ nhớ ko bị over. Ví dụ bạn cần mảng lưu 10 phần tử thì cần khởi tạo cho nó là type name[11] hoặc name[1000], …

4 Likes

Một số ngôn ngữ có hỗ trợ chỉ số mảng là số âm, có nghĩ là duyệt từ cuối mảng.

4 Likes

Cái thước của bạn bắt đầu từ số mấy ?
Gốc toạ độ cũng bắt đầu từ 0.
Tóm lại theo tự nhiên thì gần như mọi cái đều bắt đầu từ số 0.
Các loại bộ nhớ cũng được đánh địa chỉ từ 0.
Sang lập trình nó cũng vậy cho nó tự nhiên.

9 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?