Sizeof() and Strlen()的区别-20151026
来源:互联网 发布:js 模块化框架 编辑:程序博客网 时间:2024/05/21 17:43
- Sizeof()是一个运算符,而不是一个函数。
- 对于参数不同时,sizeof返回值表示的含义也是不同的:
**数组—分配的数组空间大小
指针—存储指针所用的空间大小
类型—该类型所占的空间大小
对象—对象实际占用空间的大小
函数—函数返回类型所占的空间大小**
- Strlen()是函数,需要头文件”string.h”
- 参数必须是字符型指针(char*),且必须是以’\0’结尾的。 当数组名作为参数传入时,实际上数组就退化成了指针
Eg:int eg[10];cout<< sizeof( eg ) <<endl; cout<< strlen( eg ) <<endl;[Error] cannot convert 'int*' to 'const char*' for argument '1' to 'size_t strlen(const char*)'
改变 eg[10]的类型:
char eg[10];cout<< sizeof( eg ) <<endl; cout<< strlen( eg ) <<endl;100--------------------------------Process exited after 0.3467 seconds with return value 0
Sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。
Strlen只关心存储的数据内容,不关心控件的大小和类型
char x[10]; char y[10]; char z[10] = ""; cout<<" The result is : "<<endl; cout<<"sizeof(x) = "<<sizeof( x )<<"\tstrlen(x) = "<<strlen( x )<<endl; cout<<"sizeof(y) = "<<sizeof( y )<<"\tstrlen(y) = "<<strlen( y )<<endl; cout<<"sizeof(z) = "<<sizeof( z )<<"\tstrlen(z) = "<<strlen( z )<<endl; The result is :sizeof(x) = 10 strlen(x) = 3sizeof(y) = 10 strlen(y) = 1sizeof(z) = 10 strlen(z) = 0--------------------------------Process exited after 0.2898 seconds with return value 0请按任意键继续. . .
实际上每次运行可能不一样,这取决于指针里面存了什么(从parr[0]开始知道遇到第一个NULL结束);
1 0
- Sizeof() and Strlen()的区别-20151026
- strlen sizeof的区别
- sizeof,strlen的区别
- strlen sizeof 的区别
- strlen和sizeof的区别
- sizeof与strlen的区别
- strlen和sizeof的区别
- sizeof()与strlen()的区别
- strlen和sizeof的区别
- sizeof 与 strlen 的区别
- sizeof与strlen的区别
- strlen与sizeof的区别
- sizeof 和 strlen 的区别
- sizeof()与strlen()的区别
- strlen与sizeof的区别
- sizeof 和 strlen的区别
- Sizeof与Strlen的区别
- strlen与sizeof的区别
- iOS开发 - 最常用控件 UITableView详解
- PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案
- 第16章 SQL Mode及相关问题
- C++对参数直接赋值
- 第17章 Mysql分区
- Sizeof() and Strlen()的区别-20151026
- python类型转换
- python列表
- 检查点
- 第18章 SQL优化
- python输入
- Java 多线程----synchronized关键字详解
- Leetcode -- Trapping Rain Water
- 第19章 优化数据库对象