Mã như thế này có thể hoạt động tốt:loại danh sách khởi tạo trong mảng C++ là gì?
char str[] = {'a', 'b', '\0'};
Các trái là một biến tự động (mảng).
Mã như thế này có thể KHÔNG công việc:
char *str = {'a', 'b', '\0'};
Phía bên trái là một con trỏ. Con trỏ trỏ đến một không gian không xác định, do đó, điều này sẽ thất bại.
Câu hỏi của tôi là, loại bên phải là gì?
Trong C++ 11, danh sách khởi tạo trở thành std::initializer_list
. Nhưng những gì về cũ C++ 03?
Các RHS không phải lúc nào cũng là một 'std :: initializer_list' trong C++ 11. – juanchopanza
@juanchopanza Có tài liệu tóm tắt nào về điều này không? – liuyanghejerry
Có thể [tại đây] (http://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists) và [tại đây] (http://www2.research.att.com/~bs/C++0xFAQ .html # init-list) mặc dù không rõ 100%. Tôi đã phải đau đớn thông qua tiêu chuẩn. – juanchopanza