当前位置:首页 > 内存 > 正文

字符串在内存中的存放

  • 内存
  • 2024-06-04 18:30:01
  • 1232

一、字符串中的零表示什么?

0表示整数,'0'表示0个字符,'\0'表示ASCII码值为0的字符。

在字符串中,'\0'用作结束标记字符串的。

'\0'为标志结束字符串,对应ASCII码:00;

'0'为字符0,对应ASCII码:30;3、0是对应数字0的ascii码:00。

例如将字符串赋值给数组:u8str1[]={""};事实上,数组str1在内存中的实际存储是:cxjr。21我c。或g'\0'下面的'\0'是C编译系统自动添加的。

所以用字符串赋初始值时,一般不需要指定数组的长度,系统会自行处理。将字符数组str1中的字符串复制到字符数组str2中。字符串结束标志“\0”也被复制。

扩展信息:

=0)。它是一种在编程语言中表示文本的数据类型。在编程中,字符串是符号或值的连续序列,例如符号串(一串字符)或二进制数字串(一串二进制数字)。

通常是以整个字符串作为操作对象,比如:在字符串中查找子串、获取子串、在字符串中某个位置插入子串、删除子串等。两个字符串相等的充分必要条件是:长度相等,并且每个对应位置的字符相等。假设p和q是两个字符串。寻找q在p中第一次出现的位置的操作称为模式匹配。字符串最基本的两种存储方式是顺序存储和链接存储。

参考来源:-String


二、字符串常量在内存中存储是占的单元数怎么算?

所有字符总数加1,因为字符串末尾会有一个'\0',这是系统自动添加的。由于一个字符占用的内存单元数为1字节,所以是这样计算的。如果有汉字,则对应的汉字必须乘以2,因为汉字占用2个字节。

由字符组成的字符串。

例如:“Hello12345”,一共10个字符,但是因为最后有一个隐含的'\0'来标记结束,所以总共占用了11个字节。在PC中,1个字节(Byte,简写为B)包含8个位。所谓位,就是可以存储0或1的基本存储单位。

更多信息:

常见的表示方法是使用字符代码数组,每个字符占用一个字节(如ASCII码)或两个字节(如unicode)。长度可以使用终止符(通常为NUL,ASCII码为0,这种方法用在C编程语言中)。或者在前面添加一个整数值来表示长度(Pascal语言中使用这种方法)。

这是一个以NUL结尾的字符串示例,以ASCII表示法存储在10个字节中:

FRANKNULkefw;4652414E4B006B666677

上面是字符串的长度是5个字符,但请注意,它需要6个字节。结尾后面的字符没有任何意义。

这是同一个Pascal字符串:

lengthFRANKkefw;054652414E4B6B666677

当然,可能还有其他表示形式。使用树和列表可以使一些字符串操作(例如插入和删除)更加高效。