Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa các kiểu string và char [] trong C ++


Trong phần này, chúng ta sẽ thấy sự khác biệt giữa chuỗi và char [] trong C ++. Về cơ bản, char [] là một mảng các ký tự. Vì vậy, có một số thuộc tính của mảng này. Các thuộc tính này được liệt kê bên dưới.

  • Nếu char [] được cấp phát trong phần ngăn xếp thì nó sẽ luôn chiếm 256 byte không gian. Nó sẽ không phụ thuộc vào kích thước của văn bản.

  • Nếu chúng tôi sử dụng malloc () hoặc calloc () để phân bổ động không gian cho nó vào phần heap thì chúng tôi có trách nhiệm giải phóng bộ nhớ sau khi sử dụng nó và chúng tôi luôn có chi phí phân bổ heap.

  • Nếu kích thước của mảng ký tự lớn hơn 256 ký tự, thì chương trình có thể bị lỗi. Nó có thể tạo ra thông báo xác nhận xấu trong mã của chúng tôi.

  • Để có được độ dài của chuỗi, chúng ta phải quét toàn bộ mảng ký tự cho đến khi chúng ta đạt đến ký tự ‘\ 0’ mỗi lần.

Mặt khác, C ++ có chuỗi vào không gian tên tiêu chuẩn của nó. Chuỗi này là một lớp và chuỗi này chứa mảng ký tự bên trong nó. Nó tự động quản lý cho người dùng. Trong hầu hết các trường hợp, mảng dựng sẵn cho chuỗi là 16 ký tự. Vì vậy, đối với các chuỗi ngắn hơn, nó không phân mảnh chuỗi, nhưng đối với chuỗi lớn hơn, nó sử dụng phần heap.

Chuỗi C ++ có các ký tự ‘\ 0’ có sẵn. Nó lưu trữ độ dài của chuỗi mà không cần đếm. Đối với văn bản ngắn hơn không mất đống thì nó bảo vệ khỏi việc ghi đè bộ đệm. Và hơn nữa, các chuỗi rất dễ sử dụng trong C ++.