发布网友 发布时间:2024-10-02 08:54
共4个回答
热心网友 时间:2024-10-17 05:24
strlen的返回值是字符串的长度。热心网友 时间:2024-10-17 05:24
你的理解是错的。追答这句话是对的。
但char s2[ ]={'H','e','l','l','o','!','\0'};也是字符串。所谓字符串,就是以'\0'结尾的一串字符。
学C语言一定要有一个概念,就是C语言是很底层的语言,很多操作都是赤果果的内存操作。比如
strlen,他的参数其实就是一个指针,从这个指针所指向的内存开始向后找,遇到'\0'就停止,并计数。所以说,字符串和字符数组的区别,就是最后有没有'\0',这实际上只是一个约定。
还有问题可以向我求助,或用hi给我发消息。我清华信院的,这个是本行。
记得采纳
热心网友 时间:2024-10-17 05:25
C语言的字符串实质是\0结尾的字符数组,一个6字节的字符串,其实际占用内存必须7字节,但字符串长度是6位,\0是结束符)。追答作为一个字符数组,该数组的元素个数为7;作为字符串该字符串长度为6,对于字符串来讲\0不被计入字符串长度。
使用这种声明和初始化语句,编译器将其视为字符串赋值,它的实际操作是分配一个7字节的字符数组、并在初始赋值时将第7个数组元素(S[6])赋值为\0。
例如:char S[ ]={'1', '2', '3', '\0', '4', '5', '6', '\0', '7', '8', '9', '\0'};
该字符数组是12个元素,但是strlen(S) 的返回结果将是3,strlen函数将视S[3]中的\0为该字符串的结束符。
热心网友 时间:2024-10-17 05:25
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。