sizeof与strlen的区别

基础知识:

(1)sizeof

<1> sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。

<2> 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。

<3> 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。

<4>具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:     数组——编译时分配的数组空间大小;     指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);     类型——该类型所占的空间大小;     对象——对象的实际占用空间大小;     函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。

(2)strlen

<1> strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。

<2>它的功能是:返回字符串实际的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。

转载于:https://www.cnblogs.com/jianhui-Ethan/p/4692373.html

C++ sizeof与strlen相关推荐

  1. C语言的sizeof和strlen

    strlen是函数,而sizeof是算符.strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度. ...

  2. Sizeof与Strlen的区别与联系(转)

    一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.     它的功能是:获得保证能 ...

  3. C语言中sizeof与strlen区别

    本文转载自:http://www.2cto.com/kf/201109/105100.html 1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc& ...

  4. sizeof 和strlen的区别

    一.本质区别 sizeof和strlen有本质上的区别.sizeof是C语言的一种单目运算符,如++.--等,并不是函数,sizeof的优先级为2级,比/.% 等3级运算符优先级高,sizeof以字节 ...

  5. C语言中sizeof与strlen的区别总结!

    C语言中sizeof与strlen区别总结! 先上一个例子: 结果: 一.sizeof与strlen char c[] = "abc\0cba"; 问题1:sizeof(c) = ...

  6. Sizeof与Strlen的区别与联系

    Sizeof与Strlen的区别与联系(转) 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小 ...

  7. C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别

    字符数组的长度计算:必须以终止符'/0'作为边界,但对字符数组赋值时,有两种方式: 1: 定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d' ...

  8. [基础|理论|实验]Sizeof与Strlen的区别与联系

    1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.sizeof是算符,strlen是函数 ...

  9. C语言 - sizeof和strlen的区别

    sizeof和strlen的区别: 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.s ...

最新文章

  1. 开源中国iOS客户端学习——(一)Prefix.pch文件
  2. python 字符串可以直接连接吗_如何连接字符串。。。在?(Python)
  3. 基于SmartQQ协议的QQ聊天机器人-7
  4. 解析IT行业的苦逼工作!(漫画)
  5. CTF工具(1)--- ARCHPR--含安装/使用过程
  6. Google引火烧身 还是致命一击
  7. Module build failed: Error: Missing binding
  8. node 遍历读取制定后缀文件名
  9. sqlite C/C++
  10. 揭秘阿里百亿级云客服实时分析架构是怎么炼成的?
  11. 8.Nginx 例子
  12. ad gerber文件生成_Gerber竟然可以倒转PCB文件!!!
  13. 设置Emeditor为Python的简易开发工具
  14. [渝粤教育] 西安工业大学 汉语文字学 参考 资料
  15. 大数据杀熟行为10月1日起明令禁止!
  16. Graphics画图自定义画笔
  17. OpenGL地球(自转+贴图)
  18. Gooowild隐私政策
  19. Android 开源图片裁剪工具、图片显示工具分享
  20. Apache Ranger and AWS EMR Automated Installation Series (3): Windows AD + EMR-Native Ranger

热门文章

  1. 机器人运动学_不同D-H矩阵的对比
  2. 【浅谈】如何做好一名初级技术面试官
  3. Java连MySQL性能调优(batch insert和连续left join筛选)
  4. django 添加comments app
  5. 博耳电力中标上海万国数据中心项目
  6. SQL 百万级别记录优化之 -- 单引号带来的性能下降
  7. Android IOS WebRTC 音视频开发总结(三三)-- Periscope介绍
  8. PHP——获取上传文件的后缀名
  9. asp.net学习之DataList控件
  10. Makefile文件的使用