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中项的长度_C_Arrays - Fatal编程技术网

获取多维数组C中项的长度

获取多维数组C中项的长度,c,arrays,C,Arrays,我构造了一个数组: char*state[]={“加利福尼亚州”、“俄勒冈州”、“德克萨斯州”} 我想得到California的长度,它应该是10,但是当我计算sizeof(state[0])时,它只给了我8(我想这意味着8字节,因为字符的大小是1字节)。但是为什么是8而不是10呢?我仍然能够通过州[0][I]循环打印出加利福尼亚州的每个字符 我是C的新手,有人能给我解释一下吗 最简单的解释是,sizeof是一个编译时计算的表达式。因此,它不知道字符串的长度,而字符串的长度本质上是需要在运行时进

我构造了一个数组:

char*state[]={“加利福尼亚州”、“俄勒冈州”、“德克萨斯州”}

我想得到California的长度,它应该是10,但是当我计算sizeof(state[0])时,它只给了我8(我想这意味着8字节,因为字符的大小是1字节)。但是为什么是8而不是10呢?我仍然能够通过州[0][I]循环打印出加利福尼亚州的每个字符


我是C的新手,有人能给我解释一下吗

最简单的解释是,
sizeof
是一个编译时计算的表达式。因此,它不知道字符串的长度,而字符串的长度本质上是需要在运行时进行计算的

要获取字符串的长度,请使用
strlen
。返回字符串的长度,但不包括隐式null终止符,该终止符告诉C运行时字符串的结尾在哪里


另外,在设置字符串数组时,使用
const char*[]
是一个好习惯。这强化了一个事实,即修改任何数组内容都是未定义的行为。

最简单的解释是,
sizeof
是一个编译时计算的表达式。因此,它不知道字符串的长度,而字符串的长度本质上是需要在运行时进行计算的

要获取字符串的长度,请使用
strlen
。返回字符串的长度,但不包括隐式null终止符,该终止符告诉C运行时字符串的结尾在哪里


另外,在设置字符串数组时,使用
const char*[]
是一个好习惯。这强化了一个事实,即修改任何数组内容都是未定义的行为。

最简单的解释是,
sizeof
是一个编译时计算的表达式。因此,它不知道字符串的长度,而字符串的长度本质上是需要在运行时进行计算的

要获取字符串的长度,请使用
strlen
。返回字符串的长度,但不包括隐式null终止符,该终止符告诉C运行时字符串的结尾在哪里


另外,在设置字符串数组时,使用
const char*[]
是一个好习惯。这强化了一个事实,即修改任何数组内容都是未定义的行为。

最简单的解释是,
sizeof
是一个编译时计算的表达式。因此,它不知道字符串的长度,而字符串的长度本质上是需要在运行时进行计算的

要获取字符串的长度,请使用
strlen
。返回字符串的长度,但不包括隐式null终止符,该终止符告诉C运行时字符串的结尾在哪里


另外,在设置字符串数组时,使用
const char*[]
是一个好习惯。这强化了一个事实,即修改任何数组内容都是未定义的行为。

使用。使用
strlen
,而不是
sizeof
状态[0]
不是字符串,而是字符指针
sizeof
给出内存中变量的大小,在本例中为8字节(如果状态[0]为整数,则返回4)。C没有字符串长度的概念,找到它的唯一方法是在数组中迭代,直到遇到字符
\0
(C中的所有字符串通常以该字符结尾)检查系统中的指针大小。8可能是指针大小。使用。使用
strlen
,而不是
sizeof
状态[0]
不是字符串,它是一个字符指针。
sizeof
给出内存中变量的大小,在这种情况下是8字节(如果状态[0]是整数,它将返回4)。C没有字符串长度的概念,找到它的唯一方法是遍历数组,直到遇到字符
\0
(C中的所有字符串通常以该字符结尾)检查系统中的指针大小。8可能是指针大小。使用。使用
strlen
,而不是
sizeof
state[0]
不是字符串,而是字符指针。
sizeof
给出内存中变量的大小,在这种情况下是8字节(如果state[0]是一个整数,它将返回4)。C没有字符串长度的概念,找到它的唯一方法是遍历数组,直到遇到字符
\0
(C中的所有字符串通常以该字符结尾)检查系统中的指针大小。8可能是指针大小。使用。使用
strlen
,而不是
sizeof
state[0]
不是字符串,而是字符指针。
sizeof
给出内存中变量的大小,在这种情况下为8字节(如果state[0]是整数,则返回4).C没有字符串长度的概念,找到它的唯一方法是遍历数组,直到遇到字符
\0
(C中的所有字符串通常以该字符结尾)查看系统中的指针大小。8可能是指针大小。但是,这些是字符串文字,sizeof运算符确实知道。
sizeof(“加利福尼亚”)
是非常好的代码,可以给出字符串长度。问题是字符串是通过指针引用的,因此类型信息会在过程中丢失。但是这些是字符串文字,sizeof运算符确实知道。
sizeof(“California”)
是非常好的代码,可以给出字符串长度。问题是字符串是通过指针引用的,因此类型信息会在过程中丢失。但是这些是字符串文字,sizeof运算符确实知道。
sizeof(“California”)
是非常好的代码,它会给出字符串长度。问题是字符串是通过指针引用的,因此类型信息会丢失