2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C语言 strlen与sizeof的区别

C语言 strlen与sizeof的区别

时间:2023-12-03 16:54:51

相关推荐

C语言 strlen与sizeof的区别

一、strlen

1.1 函数原型

strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。其原型如下所示:

size_t strlen(char const* str);

1.2 示列

char sArr[] = "ILOVEC";/*用strlen()求长度, 运行结果为 6(因为不包括结束字符 null)*/printf("sArr的长度=%d\n", strlen(sArr));

1.3 两个strlen(sArr) 的结果做减法总为整数

/*判断一*/if(strlen(x)>= strlen(y)){}/*判断二*/if(strlen(x)- strlen(y)>= 0){}

其中,判断表达式一没什么问题,程序也能够完全按照预想的那样工作;但判断表达式二的结果就不一样了,它将永远是真;

原因很简单,因为函数 strlen 的返回结果是 size_t 类型(即无符号整型),而 size_t 类型绝不可能是负的。因此,语句“if(strlen(x)-strlen(y)>=0)”将永远为真。

二、sizeof

关键字 sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等,如下面的示例代码所示:

char sArr[] = "ILOVEC";/*用sizeof求长度, 运行结果为 7(因为它包括结束字符 null)*/printf("sArr的长度=%d\n", sizeof(sArr));

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。