sizeof跟strlen的用法及差异

news2024/11/17 13:25:47

sizeof是一个操作符,不是函数;

而strlen是一个库函数;

sizeof是计算所占内存空间的,不管你内容是什么,只要知道占多少内存,

而strlen是跟内容有关的,它是计算字符串长度的(字符数组也是可以的),其核心是统计字符串中'/0'前有多少字符,一定要找'/0',所以它要关注内容,

下面我们通过几道题来讲解,

这里的4/8所代表的是地址在不同编译器下所占字节不同,有的是4,有的是8

验证一下输出,

下面这个代码大家来练习一下,

	char arr[] = { 'a','b','c','d','e','f' };

	printf("%d\n", sizeof(arr));
	printf("%d\n", sizeof(arr + 0));
	printf("%d\n", sizeof(*arr));
	printf("%d\n", sizeof(arr[1]));
	printf("%d\n", sizeof(&arr));
	printf("%d\n", sizeof(&arr + 1));
	printf("%d\n", sizeof(&arr[0] + 1));

第一个很简单,计算的是整个数组所占字节数,即6,

第二个arr代表的是首元素地址,+0代表首元素地址的大小,即4/8

第三个对arr首元素地址解应用,就是在问a[0]所占字节大小,即1,

第四个arr[1]是第二个元素,即1

第五个&arr代表的是整个数组的地址,也是地址,即4/8

第六个&arr+1是跳过整个数组后的地址,也是地址,即4/8

第七个&arr[0]是首元素地址,首元素地址加一也是地址,就是4/8

下面我们来看strlen,同样通过题目来讲解,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1909023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue学习day01-vue的概念、创建Vue实例、插值表达式、响应式、安装Vue开发者工具

1、vue的概念 Vue是一个用于构建用户界面的渐进式 框架 (1)构建用户界面:基于数据动态渲染页面 (2)渐进式:循序渐进的学习 (3)框架:一条完整的项目解决方案&#xff…

[Java]Swing版坦克大战小游戏项目开发(1)——new出一个窗口

highlight: xcode theme: vuepress 前言 本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏,你可以学会很多实用的设计模式思想,并且提高你的编码水平。 熟悉Frame Frame 类是 J…

C++ | Leetcode C++题解之第224题计算计算器

题目&#xff1a; 题解&#xff1a; class Solution { public:int calculate(string s) {stack<int> ops;ops.push(1);int sign 1;int ret 0;int n s.length();int i 0;while (i < n) {if (s[i] ) {i;} else if (s[i] ) {sign ops.top();i;} else if (s[i] …

亚马逊erp同步订单自动发货,告别手动,批量自动发货流...

大家好&#xff0c;今天讲下店飞飞订单之后如何让它自动发货。批量自动发货点开ERP上的订单&#xff0c;比如每天出个几十单爆单就最好的。订单跟ERP上配对成功不需要手动发货&#xff0c;自动发货都是批量发货&#xff0c;就不用一个个去点了。 那就讲下怎么设置的。 点开品…

【面试八股总结】线程基本概念,线程、进程和协程区别,线程实现

一、什么是线程&#xff1f; 线程是“轻量级进程”&#xff0c;是进程中的⼀个实体&#xff0c;是程序执⾏的最小单元&#xff0c;也是被系统独立调度和分配的基本单位。 线程是进程当中的⼀条执行流程&#xff0c;同⼀个进程内多个线程之间可以共享代码段、数据段、打开的文件…

Linux: 命令行参数和环境变量究竟是什么?

Linux: 命令行参数和环境变量究竟是什么&#xff1f; 一、命令行参数1.1 main函数参数意义1.2 命令行参数概念1.3 命令行参数实例 二、环境变量2.1 环境变量概念2.2 环境变量&#xff1a;PATH2.2.1 如何查看PATH中的内容2.2.2 如何让自己的可执行文件不带路径运行 2.3 环境变量…

科普文:K8S中常见知识点梳理

简单说一下k8s集群内外网络如何互通的 要在 Kubernetes&#xff08;k8s&#xff09;集群内外建立网络互通&#xff0c;可以采取以下措施&#xff1a; 使用service&#xff1a; 使用Service类型为NodePort或LoadBalancer的Kubernetes服务。这可以使服务具有一个公共IP地址或端口…

Java面试八股之MySQL中int(10)和bigint(10)能存储读的数据大小一样吗

MySQL中int(10)和bigint(10)能存储读的数据大小一样吗 在MySQL中&#xff0c;int(10)和bigint(10)的数据存储能力并不相同&#xff0c;尽管括号内的数字&#xff08;如10&#xff09;看起来似乎暗示着某种关联&#xff0c;但实际上这个数字代表的是显示宽度&#xff0c;而不是…

深入讲解C++基础知识(三)

目录 一、命名空间1. 创建命名空间2. 访问命名空间2.1 using 编译指令2.2 using 声明2.3 直接使用全名 3. 嵌套命名空间4. 匿名命名空间5. 命名空间的注意事项5.1 头文件中不应该包含 using 声明和 using 编译指令。5.2 最好使用 using 声明而不是 using 编译指令 二、标准库类…

LiveNVR监控流媒体Onvif/RTSP用户手册-录像计划:批量配置、单个配置、录像保存(天)、配置时间段录像

TOC 1、录像计划 支持单个通道 或是 通道范围内配置支持快速滑选支持录像时间段配置 1.1、录像存储位置如何配置&#xff1f; 2、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 支持 Windows Linux 及其它CPU架构&#xff08;国产、嵌入式…&#xff09;操作系统安装包下载 、 安装…

Kubernetes平台迁移

Kubernetes&&平台迁移 信息收集 信息收集

浅析Nginx技术:开源高性能Web服务器与反向代理

什么是Nginx&#xff1f; Nginx是一款轻量级、高性能的HTTP和反向代理服务器&#xff0c;也可以用作邮件代理服务器。它最初由俄罗斯的程序员Igor Sysoev在2004年开发&#xff0c;并于2004年首次公开发布。Nginx的主要优势在于其非阻塞的事件驱动架构&#xff0c;能够处理大量并…

128陷阱详解(从源码分析)

1、128陷阱描述 Integer 整型 -128~127 超过这个范围&#xff0c;比较会不准确 例子 public static void main(String[] args) {Integer a128;Integer b128;Integer e127;Integer f127;System.out.println(ab); //输出falseSystem.out.println(a.equals(b)); //输出trueS…

小程序做自定义分享封面图,Canvas base64图片数据真机上不显示?【已解决】

首选说一下需求&#xff0c;做一个小程序分享&#xff0c;但是封面图要自定义&#xff0c;除了要有对应商品还有有背景图&#xff0c;商品名。类似这种 实现逻辑&#xff0c;把商品图和背景图&#xff0c;再加上价格和商品名用canvas 渲染出来 这是弄好之后的效果图&#xff0…

LeetCode-刷题记录-前缀和合集(本篇blog会持续更新哦~)

一、前缀和&#xff08;Prefix Sum&#xff09;算法概述 前缀和算法通过预先计算数组的累加和&#xff0c;可以在常数时间内回答多个区间和相关的查询问题&#xff0c;是解决子数组和问题中的重要工具。 它的基本思想是通过预先计算和存储数组的前缀和&#xff0c;可以在 O(1)…

NCCL 中的一些辅助debug 知识点

1&#xff0c;调试nccl 启动kernel的方法 ncclLaunchKernel cuLaunchKernelEx ncclStrongStreamLaunchKernel cudaLaunchKernel ncclLaunchOneRank cudaLaunchKernel 在 nccl lib 中&#xff0c;不存在使用<<<grid, block,,>>> 这种类似方式启…

【咨询】企业数字档案馆(室)建设方案-模版范例

导读&#xff1a;本模版来源某国有大型医药行业集团企业数字档案馆&#xff08;室&#xff09;建设方案&#xff08;一期300W、二期250W&#xff09;&#xff0c;本人作为方案的主要参与者&#xff0c;总结其中要点给大家参考。 目录 1、一级提纲总览 2、项目概述 3、总体规…

【零基础】学JS之APIS(基于黑马)

喝下这碗鸡汤 披盔戴甲,一路勇往直前! 1. 什么是事件 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 2. 什么是事件监听? 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函数做出响应&#xff0c;也称为 注…

深度学习(笔记内容)

1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…