Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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_String - Fatal编程技术网

C 空字符串如何存储在字符数组中?

C 空字符串如何存储在字符数组中?,c,string,C,String,如果我将数组声明为 char arr[1] = ""; 内存中实际存储了什么?[0]将是什么?字符串以null结尾。空字符串包含一个元素,即null终止符本身,即'\0' char arr[1] = ""; 相当于: char arr[1] = {'\0'}; 您可以想象它是如何存储在内存中的。字符串以null结尾。空字符串包含一个元素,即null终止符本身,即'\0' char arr[1] = ""; 相当于: char arr[1] = {'\0'}; 您可以想象它是如何存储在内

如果我将数组声明为

char arr[1] = "";

内存中实际存储了什么?[0]将是什么?

字符串以null结尾。空字符串包含一个元素,即null终止符本身,即
'\0'

char arr[1] = "";
相当于:

char arr[1] = {'\0'};

您可以想象它是如何存储在内存中的。

字符串以null结尾。空字符串包含一个元素,即null终止符本身,即
'\0'

char arr[1] = "";
相当于:

char arr[1] = {'\0'};

您可以想象它是如何存储在内存中的。

a[0]
是空字符,可以称为
'\0'
0


根据定义,字符串是“由第一个空字符终止并包括第一个空字符的连续字符序列”。对于空字符串,终止的空字符是第一个(在索引0处)。

a[0]
是空字符,可以称为
'\0'
0


根据定义,字符串是“由第一个空字符终止并包括第一个空字符的连续字符序列”。对于空字符串,终止的空字符是第一个字符(在索引0处)。

C字符串以零结尾。因此,
“abc”
表示为
{a',b',c',0}

因此,空字符串只有零


这也是为什么必须始终将字符串分配为比最大可能长度大一个字符的原因。

C字符串以零结尾。因此,
“abc”
表示为
{a',b',c',0}

因此,空字符串只有零


这也是为什么必须始终将字符串分配为比最大可能长度大一个字符的原因。

arr[0]=0x00

但是,如果未指定任何值,如

char-arr[1]


然后
arr[0]=垃圾值
arr[0]=0x00

但是,如果未指定任何值,如

char-arr[1]


然后
arr[0]=垃圾值

如果数组声明为
char arr[]=”,则会引起更多的骚动

在这种情况下,
sizeof(arr)为1,strlen(arr)为0

但仍然可以通过添加如下打印来进行自我分析
printf(“%d”,arr[0])以便您可以自己理解


字符串是一个字符序列,在您的情况下,在“”中没有字符。因此,它只在
arr[0]
中存储
'\0'
字符,如果将数组声明为
char arr[]=”,则会引起更多的骚动

在这种情况下,
sizeof(arr)为1,strlen(arr)为0

但仍然可以通过添加如下打印来进行自我分析
printf(“%d”,arr[0])以便您可以自己理解


字符串是一个字符序列,在您的情况下,在“”中没有字符。因此它只在
arr[0]
中存储
'\0'
字符,C字符串以NULL结尾,因此空字符串“”实际上是“\0”,编译器帮助执行此操作,
因此strlen(“”)等于0,但sizeof(“”)等于1。

C字符串以NULL结尾,因此空字符串“”实际上是“\0”,编译器帮助执行此操作,
所以strlen(“”)等于0,但sizeof(“”)等于1。

所以arr[1]超出范围。所以arr[1]超出范围。