C语言 sizeof(char[]) 获取静态大小

C lang sizeof(char[]) get static size

我想获取 char 数组大小,但我做不到

让我们看看

#define MAX 64

char value[MAX]

value = "hi"    //or something initialization
sizeof("hi")    //result = 3
sizeof(value)   // result = 64

我想得到sizeof("hi") == sizeof(value) 我该怎么办?

sizeof(value),其中 char value[MAX] returns char 的大小乘以 MAX。因此,value中存储的字符串长度永远不会是value.

的大小

在您包含的代码段中,您实际上将 value 的大小设置为 64。因此 sizeof(value) 将 return 64 * sizeof(char). 这是正确的,无论您将什么放入数组 value.

也许您想要做的是让数组在编译时自动调整大小?例如

char value[] = "hi";
int value_size = sizeof(value); // value_size will now equal 3, as the array contains { 'h', 'i', '[=10=]' }