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. JUnit 4 与 TestNG 对比

    原文出处: 付学良的网志 原文出处2: http://www.importnew.com/16270.html -------------------------------------------- ...

  2. python 小程序 复制目录树

    1. 将一个目录树完全复制到另外一个目录下面 import os, sys """ 复制目录树 """ maxloadsize = 1024 ...

  3. [LeetCode] Smallest Rectangle Enclosing Black Pixels 包含黑像素的最小矩阵

    An image is represented by a binary matrix with 0 as a white pixel and 1 as a black pixel. The black ...

  4. 基于C/S架构的3D对战网络游戏C++框架 _04客户端详细设计与OpenGL、Qt基础

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  5. markdown语法说明

    1.先写一个标题 # 一级标题.相当于 <h1> ## 二级标题.相当于 <h2> ### 三级标题.相当于 <h3> #### 四级标题.相当于 <h4&g ...

  6. laravel下的数据序列化

    $data=$this->user->get(); //is obj $data=(string)$data; //is string $data=$data->toArray(); ...

  7. js版面向对象图片放大镜

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>放 ...

  8. Java并发_volatile实现可见性但不保证原子性

    读后感 介绍了volatile实现可见性的基本原理 介绍了volatile不能实现原子性的示例,volatile复合操作不能实现原子性,读取值后在自增前改值可能被其它线程读取并修改,自增后刷新值可能会 ...

  9. [原创]vscode初体验

    这段时间,在网上看见很多从.net转java的,为什么会造成这样的情况,我感觉有几点 1.  微软在中国的生态不好,死要钱,很多公司都不想花这部分钱 2.  做.net开发人,工资普遍较低 前言 闲聊 ...

  10. 动态生成二维码插件 jquery.qrcode.js

    前段时间做项目,需要动态生成一个二维码,于是就在网上找了一下发现一个jquery插件jquery.qrcode.js,所以今天就简单说一下这个插件的使用: jquery.qrcode.js是依赖jqu ...