Tôi đã thử các dòng sau:
static const const char* values[];
Nhưng tôi nhận được cảnh báo sau đây về VC++ C4114 cảnh báo: cùng loại vòng loại sử dụng nhiều lần.
Tuyên bố chính xác là gì?
chỉnh sửa:
Mục đích là để tạo ra một mảng bất biến của chuỗi cLàm thế nào để tạo ra một mảng const tĩnh của const char *
Trả lời
Bạn đã viết const const
thay vì static const char* const values[];
(nơi bạn xác định con trỏ và các giá trị cơ bản như const
)
Ngoài ra, bạn cần phải khởi tạo nó:
static const char* const values[] = {"string one", "string two"};
+1, Nhưng, việc khởi tạo phụ thuộc vào ngữ cảnh, nếu nó là thành viên 'tĩnh' của một lớp (tôi đoán) thì không khởi tạo có thể được thực hiện trong tuyên bố ... –
Tôi có hiểu chính xác không, const đầu tiên dành cho chuỗi và chuỗi thứ hai cho mảng đó? – Tommy
Để làm rõ từ khóa 'const':' '' 'luôn liên quan đến" mục "còn lại. Ngoại lệ của điều này là, khi const là từ đầu tiên trong biểu thức, sau đó nó liên quan đến mục bên phải nó. Vì vậy, để được siêu chính xác, người ta sẽ xác định chuỗi là 'static char const * const values []', có thể được đọc từ phải sang trái: các giá trị là một mảng các con trỏ const để const ký tự và tất cả điều này là tĩnh. – AquilaRapax
Hãy thử
static const char* const values[];
Ý tưởng là để đưa hai const
s ở hai bên của *
: bên trái thuộc về char
(ký tự không đổi), bên phải thuộc về char*
(hằng số con trỏ đến ký tự)
Như một điều này cũng giống như 'static char const * const values []' – Dennis
- 1. Khởi tạo một const char * tĩnh mảng
- 2. C: Gán "static const char * const" thành "const tĩnh char *"
- 3. khởi tạo tĩnh const char * someVar
- 4. Làm thế nào để xác định loại const char * và const char [] trong mã?
- 5. C++: Ý nghĩa của const char * const *
- 6. const char * myVar vs const char myVar []
- 7. const char * kiểu char *
- 8. Sử dụng const tĩnh + const như mảng ràng buộc
- 9. Làm thế nào để chuyển đổi wchar_t * để const char *
- 10. Chuyển đổi từ const char * để std :: string const &
- 11. C++ 11 Khởi tạo lớp mảng const tĩnh
- 12. Làm thế nào để so sánh chuỗi với const char *?
- 13. const_cast của một thành viên const tĩnh
- 14. const char pointer assignments
- 15. Con trỏ tới Const Char
- 16. char * const argv [] là gì?
- 17. C++ ngữ nghĩa của `const` tĩnh vs 'const`
- 18. Làm cách nào để nhập const char * API thành C#?
- 19. C++ chuyển đổi char thành const char *
- 20. Tại sao tôi không thể chuyển đổi 'char **' thành 'const char * const *' trong C?
- 21. Làm thế nào để bạn khai báo một mảng const của con trỏ hàm?
- 22. Làm thế nào để gọi một phương pháp không const từ một phương pháp const?
- 23. Làm thế nào để sử dụng Strtok cho tokenizing một const char *?
- 24. Làm cách nào để khởi tạo một const std :: pair?
- 25. Thành viên riêng: Tĩnh const so với chỉ const
- 26. Delphi "mảng const" thành "varargs"
- 27. Làm cách nào để tạo một bộ tham chiếu const?
- 28. Const mảng chuỗi
- 29. tạo biến C++ const
- 30. Sự khác nhau giữa const char * p và const char * p
Những gì bạn muốn để tạo ra? Một mảng các con trỏ liên tục đến các ký tự không đổi? –