sizeof: 一般指类型、变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小)

strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作为参数传入时,实际上数组就退化成指针了。该函数的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL(\0或0x00),返回的长度大小不包括NULL)

1、sizeof的使用

sizeof(int);  // 返回int类型在内存中占用的字节数4(x86)或8(x64)

int a = 2;

sizeof(a);  // 返回int 变量在内存中占用的字节数4(x86)或8(x64)

char *b = "abcd";

sizeof(b);  // 返回char类型指针在内存中占用的字节数4(x86)或8(x64),指针占用的字节数大小和类型无关

char *parr = new char[10];

sizeof(parr);  // 返回char类型指针在内存中占用的字节数4(x86)或8(x64),指针占用的字节数大小和类型无关

int func() {return 2;}

sizeof(func()); // 返回int类型在内存中占用的字节数4(x86)或8(x64)(即函数的返回值类型,不能为void)

2、strlen的使用

c字符串是否结束是以'\0'标志来判断的

char *a = "abcd";

strlen(a);  // 字符串长度为4

sizeof(a);  // 在内存中占用的字节数4(x86)或8(x64)

char b[10] = "abc";

strlen(b);  //字符串长度为 3

sizeof(b);  // 在内存中占用的字节数10(x86)或20(x64)

char *c ="a\0bc";

strlen(c);  // 字符串长度为1

sizeof(c);  // 在内存中占用的字节数5(x86)或10(x64)

备注:在c++中string字符串的长度可以使用其成员函数length()和size()

std::string str = "hello world"

str.size(); // str.length();

c/c++中关于sizeof、strlen的使用说明的更多相关文章

  1. C++面试中关于sizeof问题总结

    原文:http://blog.sina.com.cn/s/blog_7c983ca60100yfdv.html#SinaEditor_Temp_FontName (1)      sizeof是操作符 ...

  2. Strcmp(字符串1,字符串2)函数 Sizeof && strlen() Substr(a,b)

    Strcmp(字符串1,字符串2)函数 { strcmp函数是比较两个字符串的大小,返回比较的结果.一般形式是:  i=strcmp(字符串,字符串); 其中,字符串1.字符串2均可为字符串常量或变量 ...

  3. sizeof, strlen区别

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

  4. 聊聊 C 语言中的 sizeof 运算

    聊聊 sizeof 运算 在这两次的课上,同学们已经学到了数组了.下面几节课,应该就会学习到指针.这个速度的确是很快的. 对于同学们来说,暂时应该也有些概念理解起来可能会比较的吃力. 先说一个概念叫内 ...

  5. memset中的sizeof

    记录memset中的sizeof的用法, unsigned char *buff = (unsigned char*) malloc(128 * sizeof(char)); //错误的:memset ...

  6. Delphi 中Format的字符串格式化使用说明(转)

    源:Delphi 中Format的字符串格式化使用说明(转) 一.Format函数的用法 Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供 ...

  7. element框架中表格的筛选功能使用说明(转载)

    一.element框架中表格的筛选功能使用说明 转载:https://blog.csdn.net/liangxhblog/article/details/80513030 在element ui 框架 ...

  8. golang 中的 sizeof 以及 golang中的 union

    golang 中的 sizeof: 1: int(unsafe.Sizeof(uint32(0))) 2: int(reflect.TypeOf(uint32(0)).Size()) golang中的 ...

  9. node.js中的url.parse方法使用说明

    node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...

随机推荐

  1. CodeBlocks及LCM应用

    以下是在开发过程中遇到的一些细节点: 1)called after throwing an instance of std::bad_alloc 此问题是由于publish(data),当中data赋 ...

  2. 【原】Learning Spark (Python版) 学习笔记(四)----Spark Sreaming与MLlib机器学习

    本来这篇是准备5.15更的,但是上周一直在忙签证和工作的事,没时间就推迟了,现在终于有时间来写写Learning Spark最后一部分内容了. 第10-11 章主要讲的是Spark Streaming ...

  3. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  4. 如何在Microsoft Edge浏览器中添加一个Hello World插件

    注:本文提到的代码示例下载地址> How to add a Hello World extension to Microsoft Edge Microsoft Edge 随着Win 10一起推出 ...

  5. yii2使用小知识(连续补充)

    1,打印ar或者query的原始sql: $query = (new \yii\db\Query())->select(['a.username','b.item_name'])->fro ...

  6. 0104探究MySQL优化器对索引和JOIN顺序的选择

    转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...

  7. Not Hello World

    通常对于一门语言的学习,一般都是以"Hello,World!"开始的.但对于汇编语言的学习,输出这句话并不容易,首先得了解寄存器等硬件知识. 汇编语言要得以运行,首先要讲源文件编译 ...

  8. 1.ios synthesize有什么作用

    ###1.ios synthesize有什么作用 当定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,所以Xcode提供了@property和@synthe ...

  9. [推荐] PNG压缩网站:TinyPNG

    问题场景 最近在做一些网站性能优化方面的工作. 部分小图转化为Base64与css同步下载,但几张比较大的图(100k~300k)就不太适合转成Base64了,转换后会更大,影响css下载速度: 但采 ...

  10. ios学习资源

    1.BigShow学习Demo集合 https://github.com/BigShow1949/BigShow1949 2.[干货]一行代码实现自定义转场动画http://www.cocoachin ...