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

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

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求其所占内存数大小时,则所求的是其具体内容所占的内存的大小。



相关文章
|
5月前
|
存储 C语言 索引
怎样定义字符数组
字符数组是C语言和其他一些编程语言中用于存储字符序列的数据结构。字符数组可以存储一个或多个字符,并通过索引访问每个字符。下面我们将详细解释如何定义字符数组,并附上相应的代码示例。
106 0
|
5月前
|
存储 算法 C语言
字符数组应用举例
字符数组应用举例
26 1
|
5月前
|
存储 测试技术
luatos 字符串与数组转换,解析hex数组
luatos 字符串与数组转换,解析hex数组
92 1
常用的数组(字符串)方法有哪些?(二)
concat:合并数组或者字符串,concat在项目中用的还是比较多的,最经典的就是一个表格数据是有两个或者三个数组组成的时候会用到,watch监听数组和concat结合使用。下期做一个例子。
|
JavaScript
常用的数组(字符串)方法有哪些?(一)
1.pop:末位删除,即删除数组的最后一项,返回值是被删除项。 2.shift:首位删除,即删除数组的第一项,返回值是被删除项。 3.splice:指定下标删除元素,返回被删除的元素。第一个参数是从下标几开始删除,第二个参数是删除几个,第三个参数是要插入的元素。splice方法是会改变原数组的。删除功能用的比较多,我个人更喜欢用filter来变相实现删除,splice是会改变原数组的,而filter不会
常用的数组(字符串)方法有哪些?(三)
some:判断数组中有没有符合条件的元素,一个符合的都没有返回false,有一个就是true。
类数组如何转换为数组
类数组如何转换为数组
77 0
lodash转换类数组对象的长度整数
lodash转换类数组对象的长度整数
73 0
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
|
JavaScript 前端开发 API
你真的会将类数组转化为数组吗
首先,什么是类数组(Array Like)? 一个简单的定义,如果一个对象有 length 属性值,则它就是类数组 那常见的类数组有哪些呢? 这在 DOM 中甚为常见,如各种元素检索 API 返回的都是类数组,如 document.getElementsByTagName,document.querySelectorAll 等等。除了 DOM API 中,常见的 function 中的 arguments 也是类数组 那如何把类数组转化为数组呢?这是类数组操作时一个典型的场景,也是一个典型的面试题 以下我们将以 { length: 3 } 来指代类数组,来作为演示 节选自 日文 【
99 0