Thuật ngữ "hằng số" thực sự mơ hồ và từ khóa constgây hiểu nhầm.
constcó nghĩa là: "không cho phép giá trị của đối tượng này sẽ không bị thay đổi sau khi khởi tạo". Nó không có nghĩa là "hằng số thời gian biên dịch". Giá trị ban đầu của nó có thể (và thường không) vẫn đến từ các nguồn thời gian chạy.
Bạn cần một hằng số thời gian biên dịch cho một mảng bị ràng buộc.
Đôi khi có thể có một đối tượng có tên foolà hằng số thời gian biên dịch, nếu có const và nó được khởi tạo từ một biểu thức không đổi, như một nghĩa đen hoặc một constexprvật. Đó là trường hợp cho c; nó không phải là trường hợp cho b.