Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言sizeof(char[])获取静态大小_C_Arrays_Char_Sizeof - Fatal编程技术网

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)