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

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

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



相关文章
|
9月前
|
存储 C语言 索引
怎样定义字符数组
字符数组是C语言和其他一些编程语言中用于存储字符序列的数据结构。字符数组可以存储一个或多个字符,并通过索引访问每个字符。下面我们将详细解释如何定义字符数组,并附上相应的代码示例。
267 0
|
3月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
181 4
|
9月前
|
存储 算法 C语言
字符数组应用举例
字符数组应用举例
58 1
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
127 0
|
测试技术
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
110 0
lodash转换类数组对象的长度整数
lodash转换类数组对象的长度整数
97 0
a为整型数组,&a+1的含义
a为整型数组,&a+1的含义
175 0
a为整型数组,&a+1的含义
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
NSString字符串相加连接的三种方法、判断是否包含字符串的方法
NSString字符串相加连接的三种方法、判断是否包含字符串的方法
695 0
|
Serverless C语言
C 语言中关于通过形参传递数组的长度计算的一些思考
C 语言中关于通过形参传递数组的长度计算的一些思考 一 背景 学习 C 语言的过程中,计算数组的长度经常会碰到。在字符型的数组中我们可以使用 strlen() 来获取当前数组的长度,对于其他类型的数组,这个方法就不适用了。
2803 0