说明sizeof和strlen的区别
来源:互联网 发布:final cut pro x mac 编辑:程序博客网 时间:2024/06/04 19:22
由以下几个例子来说明sizeof和strlen的区别
①char* ss="0123456789"
sizeof(ss)的结果是4,ss指向字符串常量的字符指针
sizeof(*ss)的结果是1,*ss是第一个字符
②char ss[]="0123445678";
sizeof(ss)的结果是11,ss是数组,计算到'\0'的位置,因此是10+1;
sizeof(*ss)的结果是1,*ss是第一个字符
③char ss[100]="0123456789";
sizeof(ss)的结果是100,ss表示在内存中预分频的大小,100*1
strlen(ss)的结果是10,它的内部是用一个循环计算字符串的长度的,直到遇到'\0'为止
④int ss[100]={0,1,2,3,4,5,6,7,8,9};
sizeof(ss)的结果是400 100*4
sttrlen(ss)错误,strlen的参数只能是char*,并且是以'\0'结尾
通过对sizeof和strlen的理解得出二者的区别如下:
①sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int 类型,该类型保证能容纳实现所建立的最大对象的字节大小
②sizeof是运算符,strlen是函数
③sizeof可以用类型作为参数,而strlen只能用char*做为参数,并且必须是'\0'作为结尾,sizeof还可以用函数作为参数比如:
short f();
cout<<sizeof(f());
④数组作为sizeof用做参数不退化,传递给strlen就退化为指针了
⑤大部分编译程序在编译的时候就把siseof计算过了,是类型或者变量的长度,这就是用sizeof(x)可以用来定义数组维数的原因
⑥strlen的结果要在运行的时候才能计算出来,用来计算字符串的程度,而不是类型所占的大小
⑦当使用了一个结构类型或者变量时候,sizeof返回实际的大小,当使用一个静态的空间数组时候,sizeof返回全部数组的尺寸
- 说明sizeof和strlen的区别
- 以实例来说明strlen()和sizeof()的区别
- strlen和sizeof的区别
- strlen和sizeof的区别
- strlen和sizeof的区别
- sizeof 和 strlen 的区别
- sizeof 和 strlen的区别
- sizeof和strlen的区别
- sizeof 和 strlen 的区别
- sizeof 和strlen的区别
- strlen和sizeof的区别
- sizeof和strlen的区别
- strlen和sizeof的区别
- sizeof和strlen的区别
- strlen和sizeof的区别
- strlen和sizeof的区别
- sizeof和strlen的区别
- strlen和sizeof的区别
- javaMail 使用
- mit 计算机科学及编程导论(12)
- jsp页面处理
- Linux下Oracle数据库的启动、关闭和数据字典的利用
- PHP+MySQL中文乱码问题
- 说明sizeof和strlen的区别
- Oracle VM VirtualBox安装笔记
- java中常用的内存区域
- slab分配器 - 实例用法
- I/O 完成端口( Windows核心编程 )
- JAVA连接到MySQL数据库的基本操作
- RH EL4 编译linux-2.6.27.8内核
- jsp页面,当要显示的文本内容过多时,用省略号代替
- 迭代器的类型及操作