Mảng trong C++ không phải là loại thực, chỉ là biểu diễn có cấu trúc của một chuỗi giá trị và không phải con trỏ nếu bạn thấy bất kỳ nơi nào (chúng phân rã thành con trỏ). Bạn không thể sử dụng chúng như bạn sẽ sử dụng các loại khác, bao gồm cả chuyển nhượng. Sự lựa chọn là thêm nhiều hỗ trợ cho mảng hoặc để giữ chúng đơn giản và nhanh nhất có thể. Sau này đã được chọn, đó là một trong những phân biệt C++ có từ một số ngôn ngữ khác.
Để sao chép một mảng, hãy sao chép từng phần tử một tại một thời điểm.
Trong C++ 11, có vùng chứa STL std::array
. Nó được thiết kế để vừa với một mảng đồng bằng với quá tải của toán tử, cũng như liên quan đến phần còn lại của STL.
Một giải pháp thay thế tốt hơn là std::string
. Nó kết hợp các hành vi mà bạn muốn và nhiều hơn nữa, và được thiết kế đặc biệt để giữ mảng ký tự.
"hi" là, như Konrad Rudolph chỉ ra, một const char [3]
.
Đối với cin
nhập một mảng thô, không thể thực hiện theo phương tiện chuẩn vì không có quá tải được cung cấp cho cin
với mảng. Nó có thể tạo ra quá tải của riêng bạn mặc dù. Tuy nhiên, tôi không chắc chắn làm thế nào bạn sẽ tài khoản cho các kích cỡ khác nhau của mảng mà có được thông qua, trừ khi bạn xác định nó cho một container biết kích thước của nó thay vì một mảng thô.
Một lựa chọn tốt hơn nữa là 'std :: string'. – Cornstalks
Rất tiếc, vâng quên nó là một mảng các ký tự^_^ – chris
well thanks.but Im thực sự không tìm kiếm best.im chỉ cố gắng hiểu khái niệm này. Tôi biết trong thực sự lập trình tôi sẽ "nt sử dụng chuỗi kiểu C này. –