数组长度与字符串长度有什么区别?
数组长度与字符串长度区别:结束标志不同、特点不同
1、结束标志不同
字符串:必须以'\0'结尾;// ‘ \0 ’ 的意义是“字符串结束符”。
字符数组:可以包含多个'\0',但是如果当做字符串处理,则实际有效字符串为第一个'\0'的签名的字符串,如果当做字符数组处理,可以处理字符数组的任何一个字符,所有的字符都可以是'\0'。
2、特点不同
字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j"。
而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。
扩展资料:
字符数组的初始化:
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
用字符常量逐个初始化数组。例如:char a[8]={'i','l','o','v','e','y','o','u'};把8个字符依次分别赋给c[0]~c[7]这8个元素。
参考资料来源:
应该这样理解
首先,就c语言来讲,字符串的实现一般使用数组,例如
char s[] = "hello";
hello里面有五个字符 分别是 h e l l o 由于c语言规定在存放字符串的数组里要以字符串结束符来结束 也就是‘\0’
所以上面定义中的数组s长度为字符总个数5 加上一个结束符‘\0’ 也就是6
那么 字符串的长度就是5 但该数组s的长度就是6
至于通俗的数组长度,应该就指数组里面可存放元素的个数
例如char s[100] = "hello";
虽然字符串s的长度为5 但这时数组长度就为100
希望能明白
字符串的结尾部分有一个\0,也算一个