如何进行sizeof和strlen解析
发布时间 - 2023-05-27 00:00:00 点击率:次1.strlen函数.
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符 '\0'为止,然后返回计数器值。
2.sizeof操作符
sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符。
3.strlen和sizeof的区别
3.1 sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
3.2 sizeof还可以用函数做参数,比如:short f(); printf("%d\n", sizeof(f()));输出的结果是sizeof(short),即2。
3.3 数组做sizeof的参数不退化,传递给strlen就退化为指针了。
3.4 大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因。
3.5 strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。
3.6 sizeo
f后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。
4.举例区别strlen和sizeof
1.char str[20]="0123456789";
int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。
int b=sizeof(str); //而b=20; >>>> sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。
2.上面是对静态数组处理的结果,如果是对指针,结果就不一样了
char* ss = "0123456789";
sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针,sizeof 获得的是一个指针的之所占的空间,应该是长整型的,所以是4
而sizeof(*ss) 结果 1 ===》*ss是第一个字符,其实就是获得了字符串的第一位'0' 所占的内存空间,是char类型的,占了 1位
strlen(ss)= 10 >>>> 如果要获得这个字符串的长度,则一定要使用 strlen。sizeof函数返回其参数在内存中所占用的字节数,而strlen函数返回参数所指向的字符串中字符的个数。
3.在使用sizeof时,有一个很特别的情况,就是数组名到指针蜕变,
char Array[3] = {'0'};
sizeof(Array) == 3;
char *p = Array;
strlen(p) == 1;//sizeof(p)结果为4
在传递一个数组名到一个函数中时,它会完全退化为一个指针
4. 内存补齐
class X
{
int i;
int j;
char k;
};
X x;
cout
cout
内存补齐是一个在笔试面试中比较容易考的知识点
# Array
# 常量
# strlen
# printf
# 整型
# 字符串常量
# 字符串
# char
# int
# 指针
# class
# 是一个
# 所占
# 的是
# 是个
# 第一个
# 可以用
# 补齐
# 编译程序
# 过了
# 这就是
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
专业商城网站制作公司有哪些,pi商城官网是哪个?
简单实现jsp分页
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何挑选高效建站主机与优质域名?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
简历没回改:利用AI润色让你的文字更专业
如何在阿里云虚拟主机上快速搭建个人网站?
如何快速重置建站主机并恢复默认配置?
大连网站制作公司哪家好一点,大连买房网站哪个好?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何获取免费开源的自助建站系统源码?
Laravel如何记录自定义日志?(Log频道配置)
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
BootStrap整体框架之基础布局组件
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在IIS中新建站点并配置端口与物理路径?
Laravel怎么上传文件_Laravel图片上传及存储配置
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
怎么用AI帮你为初创公司进行市场定位分析?
如何用景安虚拟主机手机版绑定域名建站?
黑客如何利用漏洞与弱口令入侵网站服务器?
用yum安装MySQLdb模块的步骤方法
如何快速生成凡客建站的专业级图册?
使用Dockerfile构建java web环境
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
太平洋网站制作公司,网络用语太平洋是什么意思?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
如何在阿里云香港服务器快速搭建网站?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
iOS发送验证码倒计时应用
如何快速搭建高效简练网站?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
详解jQuery中基本的动画方法
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel观察者模式如何使用_Laravel Model Observer配置
香港服务器选型指南:免备案配置与高效建站方案解析
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
如何快速上传建站程序避免常见错误?
Laravel模型事件有哪些_Laravel Model Event生命周期详解
制作企业网站建设方案,怎样建设一个公司网站?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
深圳网站制作平台,深圳市做网站好的公司有哪些?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
下一篇:Java点餐小程序之黑心商人
下一篇:Java点餐小程序之黑心商人

