C语言sizeof(char[])获取静态大小
我想得到字符数组的大小,但我做不到 让我看看C语言sizeof(char[])获取静态大小,c,arrays,char,sizeof,C,Arrays,Char,Sizeof,我想得到字符数组的大小,但我做不到 让我看看 #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]返回char的大小乘以MAX。因此,存储
#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]
返回char
的大小乘以MAX
。因此,存储在value
中的字符串长度永远不会是value
的大小。在您包含的代码段中,实际上是将value
的大小设置为64。因此,sizeof(value)
将返回64*sizeof(char)
。
这是正确的,无论您将什么放入数组值
也许您试图做的是让数组在编译时自动调整大小?e、 g
char value[] = "hi";
int value_size = sizeof(value); // value_size will now equal 3, as the array contains { 'h', 'i', '\0' }
这甚至可以编译吗?我不知道你可以像在第5行那样分配数组。哦,但是你有更多的语法错误,所以这只是一个例子。没关系。
strlen(value)==2
Post-real-code(至少可以编译)如果使hi
和value
具有相同的大小,则可以使sizeof(“hi”)==sizeof(value)
。