Các mã sau đâysizeof chuỗi chữ
#include <iostream>
using namespace std;
int main()
{
const char* const foo = "f";
const char bar[] = "b";
cout << "sizeof(string literal) = " << sizeof("f") << endl;
cout << "sizeof(const char* const) = " << sizeof(foo) << endl;
cout << "sizeof(const char[]) = " << sizeof(bar) << endl;
}
đầu ra
sizeof(string literal) = 2
sizeof(const char* const) = 4
sizeof(const char[]) = 2
trên một hệ điều hành 32bit, biên soạn với GCC.
- Tại sao
sizeof
tính toán độ dài (không gian cần thiết) chuỗi chữ? - Chuỗi chữ có loại khác (từ char * hoặc char []) khi được gán cho
sizeof
?
+1, nhưng loại thực sự là 'mảng của các ký tự const' (const không phải là tùy chọn) –
@dribeas: yes; Tôi đã bỏ qua các vòng loại, nhưng bạn là chính xác về mặt đạo đức. –
@JonathanLeffler ... loại tốt nhất của chính xác, đặc biệt là khi nói đến lập trình –