有关在不同方式的定义下字符数组求长度

简介: 有关在不同方式的定义下字符数组求长度

1.首先明白strlen和sizeof的区别



sizeof():主要负责计算数组的长度。


strlen():主要负责计算字符串的长度。


2.有关不同定义下的求字符数组所占内存的大小(以sizeof为例)


char str[]={‘b’,'i','t'};//所占三个字节(因为前面[]内没有规定具体个数的多少,所以没有自动补/0)


char str[3]={'b','i',''t};//所占三个字节(按照理论在前面标识了具体数字之后应该自动去补/0,但是由于原本数组内容已到达上限(三个字节),故数组长度为三个字节。


char str[4]="bit";//所占四个字节(按照规定,前面标识数字之后要自动补0)。


char str[]="bit"(或者{“bit”}--定义二维数组时相对常用),此时被称为以字符串类型定义字符数组,则此时需要自动补0,故其所占内存大小为4个字节;


char *str={"bit"}或者“bit”时,此时用sizeof求其大小时,所求的并不是数组内容所占字节大小,而是指针的大小(地址值的大小),在32位操作系统中为4个字节,64位操作系统中为8个字节。而在这种情况下,用strlen求其所占内存数大小时,则所求的是其具体内容所占的内存的大小。



相关文章
|
4月前
|
存储 C语言 索引
怎样定义字符数组
字符数组是C语言和其他一些编程语言中用于存储字符序列的数据结构。字符数组可以存储一个或多个字符,并通过索引访问每个字符。下面我们将详细解释如何定义字符数组,并附上相应的代码示例。
101 0
|
4月前
|
存储 算法 C语言
字符数组应用举例
字符数组应用举例
23 1
|
4月前
|
存储 人工智能
字符指针变量和字符数组注意事项(区别)
字符指针变量和字符数组注意事项(区别)
27 0
|
4月前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现
|
存储
关于char类型数组的两种输出方法
关于char类型数组的两种输出方法
238 0
|
JavaScript
常用的数组(字符串)方法有哪些?(一)
1.pop:末位删除,即删除数组的最后一项,返回值是被删除项。 2.shift:首位删除,即删除数组的第一项,返回值是被删除项。 3.splice:指定下标删除元素,返回被删除的元素。第一个参数是从下标几开始删除,第二个参数是删除几个,第三个参数是要插入的元素。splice方法是会改变原数组的。删除功能用的比较多,我个人更喜欢用filter来变相实现删除,splice是会改变原数组的,而filter不会
常用的数组(字符串)方法有哪些?(二)
concat:合并数组或者字符串,concat在项目中用的还是比较多的,最经典的就是一个表格数据是有两个或者三个数组组成的时候会用到,watch监听数组和concat结合使用。下期做一个例子。
常用的数组(字符串)方法有哪些?(三)
some:判断数组中有没有符合条件的元素,一个符合的都没有返回false,有一个就是true。
实现一个函数,使用指针连接两个字符串。函数输入: 两个源字符串的指针,目的字符串的指(C++指针练习4)
实现一个函数,使用指针连接两个字符串。函数输入: 两个源字符串的指针,目的字符串的指(C++指针练习4)
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)