没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
总结sizeof 和strlen的区别: sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。 strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。 strlen(...)的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
资源推荐
资源详情
资源评论
笔记本: C/C++
创建时间: 2024-01-12 16:16 更新时间: 2024-01-12 16:47
作者: 2568523998@qq.com
URL: https://baijiahao.baidu.com/s?id=1709889005038952351&wfr=spider&for=pc
【C语言】sizeof 和strlen 区别
1 strlen和sizeof表示不同的含义。
strlen表示的是一个计数器的工作,它是从内存的某个位置(这里的位置可以是
字符串开头,中间某个位置,也可以是某个不确定的内存区域)开始扫描,然
后直至碰到第一个字符串结束符' '为止,然后返回计数器值。
sizeof在C语言中是用于判断数据类型或者表达式长度的运算符。
2 在程序中运行strlen和sizeof的运行结果有区别。
strlen后是不加最后的结束标志' ',其表示字符串的长度。而sizeof求
的是字符串所在内存中的长度,所以它是加上最后的结束标志' '的。
#include<stdio.h>
#include<string.h>
int main(){
char buf[] = "abc";
printf("strlen(buf) = %d",strlen(buf));printf("sizeof(buf) =
%d",sizeof(buf));
return 1;
}
上面这个程序,运行的结果就是
strlen(buf) =3
sizeof(buf) =4
3 使用区别
3.1 sizeof
sizeof 的操作数可以是数据类型、函数、变量,表达式使用方式为:
(1)数据类型
sizeof (type )
例如我们要计算一个int 型数据的存储空间可以用: sizeof (int)。需要注意
的是sizeof 的操作数是数据类型时要加括号。其数值大小为该数据类型所占的
存储空间的字节数。
(2)变量
sizeof(变量名)
资源评论
冷凝女子
- 粉丝: 499
- 资源: 67
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功