1.参数
sizeof是c/c++ 中的一个操作符,其作用是返回对象或数据类型所占的内存字节数。
用法:sizeof(对象)、sizeof 对象、sizeof(类型)
如果类型做参数,返回的是该类型所占内存字节数,
对象做参数的几个常用的说明: sizeof(数组名) 返回的是数组所占空间字节数, 如:sizeof(数组名)/sizeof(数组元素类型) 计算数组大小。
sizeof(指针) 返回指针类型大小(32位机为4字节)
sizeof(*指针) 返回指针所指向数据类型的大小,如 char * pChar='a'; sizeof(*pChar) 为1字节。
strlen是c/c++ 中的一个函数,其作用是返回字符串的长度。
用法: strlen(char *pStr) 参数只能是字符指针。并且注意,字符指针指向的字符串必须以 \0 结尾(原因是strlen就是根据 \0 来判断字符指针是否结尾。)
另:数组名做函数参数的时候退化为指针。 但是上面可以看到 sizeof(数组名) 和sizeof(指针) 得到的是不一样的结果正好验证了 sizeof是操作符跟strlen函数的区别。
2.举例理解。
操作数组:char str[20] ="0123456789";
strlen(str) 10
sizeof(str) 20 20*sizeof(char)
sizeof(*str) 1 sizeof(char)
操作字符指针: char *pStr ="0123456789";
sizeof(pStr) 4
strlen(pStr) 10
sizeof(*pStr) 1
另:如果要获得字符串的长度,则一定要使用strlen 想想为什么吧。
sizeof 跟 strlen 的区别的更多相关文章
-
sizeof和strlen的区别
一.sizeof sizeof(...)是运算符,而不是一个函数. sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了, ...
-
Sizeof与Strlen的区别与联系
转自:http://www.cnblogs.com/carekee/articles/1630789.html 一.sizeof sizeof(...)是运算符,在头文件中typedef为uns ...
-
Sizeof与Strlen的区别与联系(转)
Sizeof与Strlen的区别与联系 一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型 ...
-
C++-sizeof和strlen的区别
一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保 ...
-
sizeof和strlen的区别和联系总结
link:http://blog.csdn.net/ghevinn/article/details/9974967 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头 ...
-
【转】Sizeof与Strlen的区别与联系
原文地址:http://www.cnblogs.com/carekee/articles/1630789.html 1.sizeof sizeof(...)是运算符,在头文件中typedef为uns ...
-
C++Sizeof与Strlen的区别与联系
一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保 ...
-
Sizeof与Strlen的区别【转】
本文转载自:http://www.cnblogs.com/carekee/articles/1630789.html Sizeof与Strlen的区别与联系 一.sizeof sizeof(.. ...
-
我也介绍下sizeof与strlen的区别
本节我也介绍下sizeof与strlen的区别,很简单,就几条: 1. sizeof是C++中的一个关键字,而strlen是C语言中的一个函数:2. sizeof求的是系统分配的内存总量,而strle ...
-
C++基础--sizeof和strlen的区别
首先,来运行一段程序: #include "stdafx.h" #include <stdio.h> #include <string.h> int mai ...
随机推荐
-
HTML 学习笔记 JavaScript (DOM)
一 DOM 简介 通过HTML DOM 可以访问JavaScript 文档的所有元素 当网页被加载的时候,浏览器会创建页面的文档对象模型 HTML DOM 模型被构造成对象的树 HTML DOM 树 ...
-
dedecms /include/filter.inc.php Local Variable Overriding
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 filter.inc.php这个文件在系统配置文件之后,里面有forea ...
-
BZOJ4554: [Tjoi2016&;Heoi2016]游戏
Description 在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂.简单的说,这个游戏就是在一张地图上放上若干个炸弹,看 是否能炸到对手,或者躲开对手的炸弹.在玩游戏的过程中,小H想到了这样一 ...
-
ECShop出现Strict Standards: Only variables should be passed by reference in的解决方法
今天安装ecshop的时候最上面出现了一个错误提示:Strict Standards: Only variables should be passed by reference in F:\www.x ...
-
SQL 两种表复制语句
1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Tab ...
-
js+css:43种常见的浏览器兼容性问题大汇总
javascript 1.HTML对象获取问题 FireFox:document.getElementById(“idName”); ie:document.idname或者document.getE ...
-
为什么Node.JS会受到青睐?
为什么会是Node.JS? 从技术上讲,Node.JS不是一个非常好的项目,Node.JS只是把一个烂想法实现到了可以接受的程度. 但是人们为什么愿意用Node.JS? 从历史看来,成功的项目从来都不 ...
-
Asp .Net MVC4笔记之走进MVC
一.MVC三层架构: mvc三层架构,大家都比较熟悉了,这里再介绍一下.Mvc将应用程序分离为三个部分: Model:是一组类,用来描述被处理的数据,同时也定义这些数据如何被变更和操作的业务规则.与数 ...
-
Ransom Note(383)
题目:Given an arbitrary ransom note string and another string containing letters from all the magazine ...
-
Java的常用操作符
操作符用于接受一个或多个参数,并生成一个新的值.加号和一元的正号(+).减号和一元的负号(一).乘号(*).除号(/)以及赋值号(=)的用法和大多数编程语言都类似. 操作符作用于操作数,生成一个新值. ...