Chấm dứt bằng 0 có nhiều hiệu ứng hoạt động tốt, có rất nhiều liên quan trở lại vào cuối những năm 60.
CPU có hướng dẫn nhảy có điều kiện về thử nghiệm cho 0. Trong thực tế, một số CPU thậm chí có hướng dẫn mà sẽ lặp/sao chép một chuỗi các byte đến 0.
Nếu bạn sử dụng một nhân vật thoát thay vào đó, bạn có hai thử nghiệm HAI byte khác nhau để khẳng định sự kết thúc của chuỗi. Không chỉ chậm hơn, nhưng bạn mất khả năng lặp lại một byte tại một thời điểm, vì bạn cần có khả năng xem trước hoặc khả năng quay lại.
Hiện tại, các ngôn ngữ khác (ho, Pascal, ho) sử dụng chuỗi theo kiểu đếm/giá trị. Đối với họ, mọi ký tự đều hợp lệ, nhưng chúng luôn giữ một bộ đếm với kích thước của chuỗi. Lợi thế là rõ ràng, nhưng cũng có những nhược điểm đối với kỹ thuật này.
Đối với một điều, kích thước chuỗi bị giới hạn bởi số byte tính. Một byte cung cấp cho bạn 255 ký tự, hai byte cung cấp cho bạn 65535, v.v. Có thể gần như không liên quan đến ngày hôm nay, nhưng thêm hai byte vào mỗi chuỗi một lần là khá tốn kém.
Edit:
Tôi không nghĩ rằng câu hỏi là câm.Trong những ngày này của các ngôn ngữ cấp cao với bộ nhớ quản lý, sức mạnh CPU đáng kinh ngạc và số tiền khiêu dâm của bộ nhớ, quyết định như vậy từ quá khứ cũng có vẻ có vẻ vô nghĩa. Và, quả thật, hôm nay họ không còn cảm giác vô nghĩa nữa, vì vậy đó là một điều tốt để hỏi họ.
Nguồn
2009-07-19 22:57:54
Điều gì xảy ra khi bạn muốn đặt \ $ vào chuỗi? –
Sau đó, bạn thoát khỏi nhân vật trốn thoát, tất nhiên! –
@Bryan: Bạn không thể thoát khỏi một nhân vật, bạn chỉ có thể thoát khỏi sự thể hiện mã nguồn của một nhân vật. Bạn không thể sử dụng ký tự nào mà bạn sử dụng làm chấm dứt trong chuỗi. – Guffa