sizeof()与strlen()的区别
来源:互联网 发布:中国石油大学网络自助 编辑:程序博客网 时间:2024/06/05 19:11
面试的时候做笔试题的时候是否经常遇到这个题目,我遇到过很多此,讲讲自己的浅显的理解吧,如果想更深入的了解就去看看大神们的讲解吧,因为我是菜鸟中的菜鸟
sizeof()是运算符而不是函数,参数可以使类型,函数,变量,指针,对象等。sizeof()是在编译时计算,所以sizeof不能返回动态分配的内存空间的大小。
讲了这么多还没讲sizeof的功能了,sizeof是获取能容纳实现所建立的最大对象的字节大小。
数组---编译时分配的数组空间大小
指针---存储该指针所用的空间大小(存储该指针的地址的长度,是长整形,应该为4)
类型---该类型所占用的空间大小
对象---对象的实际占用空间大小
函数--函数返回类型所占的空间大小,函数的返回类型不能为void
strlen()是函数,要在运行时才能计算,参数必须是字符型指针(char*)。当数组名作为参数传入时,数组就退化成指针
strlen()返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
char* p="abcdefg";
strlen(p);// 7
sizeof(p);//4
char* pp=new char[5];
strlen(pp);//随机输出一个数从pp[0]开始直到遇到NULL结束
sizeof(pp);//错误,sizeof只能用在静态内存
sizeof(*pp);//输出1,返回类型所占的空间
struct A{
short int a1;
short int a2;
short int a3;
};
struct B{
long int b1;
short int b2;
};
sizeof(A);//输出6
sizeof(B);//输出8
char str[100];
strlen(str);//输出0
sizeof(str);//输出100
- sizeof与strlen的区别
- sizeof()与strlen()的区别
- sizeof 与 strlen 的区别
- sizeof与strlen的区别
- strlen与sizeof的区别
- sizeof()与strlen()的区别
- strlen与sizeof的区别
- Sizeof与Strlen的区别
- strlen与sizeof的区别
- sizeof与strlen的区别
- sizeof与strlen的区别?
- sizeof与strlen的区别
- strlen与sizeof的区别
- sizeof与strlen的区别
- sizeof与strlen的区别
- strlen与sizeof的区别
- Sizeof与Strlen的区别
- strlen与sizeof的区别
- 博弈---斐波那契博弈
- setInterval与clearInterval使用示例
- 运用svn显示注释
- .cpp和.h
- 安装完 MySQL 后必须调整的 10 项配置
- sizeof()与strlen()的区别
- OpenGL ES Programming Guide for iOS 关于OpenGL ES
- QML Image获取资源路径的细节
- quick-cocos2dx android编译打包
- 线程讲解
- Android ListView滑动过程中图片显示重复错位闪烁问题解决
- 紫外线杀菌器:紫外线杀菌的原理分析
- 输出星号图5
- Android应用销毁的三种方法