C++ sizeof

2023-05-16

sizeof :运算符,返回类型或数据对象的长度,单位为字节。

用法:

  • 数据类型:sizeof(char):返回对应长度。
  • 普通变量:sizeof(a):返回对应长度。
  • 数组:sizeof(数组名):返回整个数组所占字节数。sizeof(数组元素):返回元素长度。
  • 指针:sizeof(p):返回指针长度。本系统均为8字节。
void test_sizeof()
{
    cout << sizeof(char) << endl;  //1
    cout << sizeof(int) << endl;  //4
    cout << sizeof(double) << endl;  //8

    int a = 3;
    int arr[5] = {4, 6};
    int arr2[] = {7, 8, 9};

    cout << sizeof(a) << endl;  //4
    cout << sizeof(arr[1]) << endl; //4
    cout << sizeof(arr) << endl; //20
    cout << sizeof(arr2) << endl; //12

    int *p = arr;
    int *q = &arr[1];

    cout << p << endl;  //0x65fdb0
    cout << *p << endl;  //4
    cout << q << endl;  //0x65fdb4
    cout << *q << endl;  //6

    cout << sizeof(p) << endl;  //8
    cout << sizeof(*p) << endl;  //4
    cout << sizeof(q) << endl;  //8
    cout << sizeof(*q) << endl;  //4

    char *cptr;
    short *sptr;
    int *ptr;
    double *dptr;

    cout << sizeof(cptr) << endl; //8
    cout << sizeof(*cptr) << endl; //1
    cout << sizeof(sptr) << endl; //8
    cout << sizeof(*sptr) << endl; //2
    cout << sizeof(ptr) << endl; //8
    cout << sizeof(*ptr) << endl; //4
    cout << sizeof(dptr) << endl; //8
    cout << sizeof(*dptr) << endl; //8
}
  • 用于字符串char数组:sizeof 返回值与存储内容无关,返回数组大小。
    const int Size = 10;
    char name[Size];
    cin >> name; // fan
    cout << sizeof(name) << endl; //10
    cout << strlen(name) << endl; //3
  • sizeof 指出整个数组的长度:10字节。
  • strlen 返回存储在数组中的字符串的长度,不包含结尾的空字符 '\0' 。
    const int Size = 10;
    char name[Size];
    cin >> name; // 12345678 9
    cout << sizeof(name) << endl; //10
    cout << strlen(name) << endl; //8
    const int Size = 10;
    char name[Size];
    cin >> name; // 123456789101112
    cout << sizeof(name) << endl; //10
    cout << strlen(name) << endl; //15

sizeof 与 strlen 区别:

  • sizeof 是操作符, strlen 是库函数,存放在<cstring>头文件中。
  • sizeof 参数可以是类型或变量,strlen 以字符串为参数,接受char数组。
  • sizeof 在编译时已知,strlen 在运行时计算。
  • sizeof 计算内存大小,与具体内容无关,strlen 计算字符串实际长度,遇到空字符结束,不包含结尾空字符 ‘\0’ 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ sizeof 的相关文章

随机推荐

  • kafka架构、producer及consumer流程图

    1 kafka架构 xff1a 2 producer流程 xff1a 3 consumer流程 xff1a
  • Ubuntu18.04下安装OpenCv依赖包libjasper-dev

    问题 Ubuntu18 4下使用sudo apt get install libjaster dev安装包时提示找不到这个包 解决办法 终端中输入以下代码即可解决 span class token function sudo span ad
  • Nginx应用知识汇总

    一 Nginx是什么 xff1f Nginx engine x 是一个高性能的HTTP和反向代理web服务器 Nginx是一款轻量级的Web 服务器 反向代理服务器及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0
  • JAVA学习代码——txt写入学生信息

    涉及 xff1a list的使用和遍历 文件的读 循环控制语句的使用 文件操作类 xff1a FileOperation package file import java io BufferedReader import java io B
  • 怎样把WORD中的错误一次性全部忽略

    1 审阅 选项 拼写和语法 点击全部忽略 2 或者打开word选项 校对 将键入时检查拼写勾选项去掉 xff0c 或者勾选下面的两项例外项 xff0c 不显示拼写和语法错误 xff0c 确定 这样就不会再检查你的拼写 xff0c 不用忽略了
  • 知识图谱前沿技术课程(华东师范大学站)

    知识图谱表达了各类实体 概念及其之间的各种语义关系 xff0c 成为了大数据时代知识表示的主要形态之一 知识图谱是目前人工智能领域的一个重要支撑 xff0c 已经在诸如智能问答 搜索 推荐等具体领域得到很好的应用 华东师范大学计算机应用研究
  • Win10白色图标制作及替换

    win10白色图标制作 xff1a 一 软件准备 IcoFX xff1a 提取图标 生成图标 Photoshop xff1a 修改编辑图标 二 制作步骤 1 提取图标 打开IcoFX xff0c 直接在桌面上选择快捷方式 xff0c 拉拽以
  • Java中输出当前时间的各种方法

    import java text import java util class Example public static void main String args TimeZone setDefault TimeZone getTime
  • VMware无法打开已存在虚拟机vmx文件解决办法

    复制过来的虚拟机文件 在 VMware 无法直接打开 xff08 文件 打开 无反应 xff09 解决办法 xff1a 1 首先打开vmx文件 xff0c 将ios路径设置正确 2 将虚拟机进程关闭 3 在文件管理器中右键vmx文件 xff
  • 使用cmd命令行查看wifi密码

    1 xff1a 在命令行输入下面命令 xff0c 查询本机存储WIFI xff1a netsh wlan show profiles 2 xff1a 输入下面命令查询WIFI密码 xff0c 第二张图显示的就是WIFI密码 netsh wl
  • Kettle 7.1 资源库配置&&无法配置资源库&&自定义配置文件路径

    资源库配置 1 kettle 7 1 资源库配置在左上角的Connect 2 点击Connect xff0c 弹出默认资源库 xff1a Pentaho Repository 3 在弹出窗口选择other Repositories 选择对应
  • oracle 数据库 日期时间整理

    oracle 数据库 日期时间整理 一 xff1a 日期格式 1 xff09 年 xff1a YYYY或yyyy xff08 可以截取1 4位 xff09 select to char sysdate 39 yyyy 39 from dua
  • 指针+1,怎么加?

    指针 43 1 指针 xff0b 1 xff0c 是加一个单元格还是加一个字节呢 xff0c 先看一个程序 xff1a include lt stdio h gt int main int arr 61 1 2 3 4 5 6 7 8 9
  • kail linux 虚拟机安装

    kail linux 虚拟机安装 系统介绍 Kali Linux是基于Debian的Linux发行版 xff0c 设计用于数字取证操作系统 每一季度更新一次 由Offensive Security Ltd维护和资助 最先由Offensive
  • kali 桌面设置:风格设置

    sudo apt install lightdm sudo dpkg reconfigure lightdm lightdm gdm3 事件的起因是kali安装wine32 Kali中安装wine是能成功的 xff0c 三十使用tim需要w
  • CentOS yum方式升级内核kernel

    xff08 此方法只限于CentOS派系的yum rpm 补充 xff1a 限于64Bit CentOS7的32位 xff0c 我试过用CentOS6的32位内核来升级 xff0c 可升级可重启可使用 xff0c 半个小时后删除了此系统没再
  • dlang语法的简单整理

    dlang整理 为什么使用dlang 优点 xff1a 快速 xff0c 开发高效的 xff0c 方便 xff0c 无虚拟机的 xff0c 快速的 xff0c 高性能的 垃圾回收 缺点 xff1a 语法较为复杂 xff0c 支持gc 曾经很
  • Linux基础命令-netstat显示网络状态

    Linux基础命令 ss显示socket信息 文章目录 netstat 命令介绍 语法格式 基本参数 显示各列内容分析 1 xff09 netstat a显示各列内容分析 2 xff09 netstat r显示各列内容分析 3 xff09
  • R语言igraph包的使用

    igraph包是一个用来解决图与网络问题以及对其进行可视化的包 前几天数学建模做图论的作业我就是用的这个包 xff0c 这篇博客就写一下如何解决图论中的最短路问题 xff0c 最大流问题和最小生成树问题 xff0c 以及图的可视化 需要声明
  • C++ sizeof

    sizeof xff1a 运算符 xff0c 返回类型或数据对象的长度 xff0c 单位为字节 用法 xff1a 数据类型 xff1a sizeof char xff1a 返回对应长度 普通变量 xff1a sizeof a xff1a 返