strlen是函数,而sizeof是算符。strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度。

因为sizeof()测试的是数组的长度。而strlen测试的是字符串的长度。在定义数组时,字符串后面还有一个结束标志'\0',这个也要算进去!

#include <stdio.h>
#include <string.h>
main()
{
char ss[]="string";
printf("%d %d \n",sizeof(ss),strlen(ss));
}

代码修改下:

#include <stdio.h>
#include <string.h>
main()
{
char ss[]="string";
ss[0]=0;
ss[1]='\0';
ss[2]='0';
printf("%d %d \n",sizeof(ss),strlen(ss));
}

声明x的时候x里面存储的是"string\0",最后的\0是结束符,所以sizeof(x)就是7。
而\0的asccii码值为0,strlen(x)是计算到\0位置,strlen(x)也就是0了。
注意:=0和='\0'都是结束。而='0'是真正的给对应位置置为字符0

C语言的sizeof和strlen相关推荐

  1. 【C语言】sizeof和strlen的区别

    一.size和strlen的异同 二.数组名意义的两个特例 三.结合实例分清sizeof和strlen 1.一维数组 易错解析 2.字符数组 易错解析 3.二维数组 易错解析 一.size和strle ...

  2. c语言sizeof和strlen哪个大,C语言的sizeof和strlen区别与联系

    sizeof指的是占有空间的大小,包括字符串结束的\0.strlen是计算字符串长度,以\0作为结束标志,并且\0不计入数值. #include #include using namespace st ...

  3. 【C 语言】字符串操作 ( strlen 与 sizeof 函数 | 计算 字符串长度 与 内存块大小 )

    文章目录 一.strlen 与 sizeof 函数 二.计算 字符串长度 与 内存块大小 一.strlen 与 sizeof 函数 strlen() 函数的作用是获取字符串大小 , 其原理是 从 内存 ...

  4. C语言再学习 -- 关键字sizeof与strlen

    sizeof  一.简单介绍 sizeof 是 C 语言的一种单目操作符,如 C 语言的其他操作符++.--等.它并不是函数.C 规定 sizeof 返回 sieze_t 类型的值.这是一个无符号整数 ...

  5. C语言 sizeof 和 strlen 函数区别 - C语言零基础入门教程

    目录 一.sizeof 函数与 strlen 函数区别 1.获取字符串长度 – 针对字符串 2.获取指针/数组长度 – 针对指针/数组 3.sizeof 获取内存大小 4.经典案例 二.猜你喜欢 零基 ...

  6. c语言sizeof测量字符组长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...

    1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c ...

  7. c语言字符数组的实际长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...

    1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c ...

  8. 如何求C语言字符串长度(strlen函数和sizeof关键字)

    如何求C语言字符串长度(strlen函数和sizeof关键字) 在程序里,一般会用***strlen()***函数或***sizeof()***来获取一个字符串的长度,但这2种方法获取的字符串的长度其 ...

  9. c语言sizeof strlen,C语言中sizeof与strlen区别

    一.本质区别 sizeof 和strlen 有本质上的区别.sizeof 是C 语言的一种单目运算符,如++.--等,并不是函数,sizeof 的优先级为2 级,比/.% 等3 级运算符优先级高,si ...

最新文章

  1. Galaxy Release 20.05 发布,新增多项可视化体验
  2. PL/SQL基础篇4(游标)
  3. QluOJ2018NewCode计算几何(寄蒜几盒)
  4. node+express学习日记
  5. SPI接口比IIC速度快的理解
  6. show status like “table%“ 分析mysql表锁定
  7. IMS与未来电信产业演变
  8. LoadRunner监控SQLServer
  9. 计算机万维考试题,计算机培训 万维考试系统选择题题库(含参考答案).pdf
  10. Alexa技能开发从创建到发布
  11. C-V2X通信架构中,PC5接口和Uu接口的区别是什么?
  12. python读音有道-[Python]通过有道词典API获取单词发音MP3
  13. flutter 截图 截长图 滚动截图 保存到手机
  14. cogs2235 烤鸡翅 贪心
  15. Word 2019 自带公式快速编号方法
  16. 使用GSAP的动画库为Bootstrap传送带制作动画
  17. Sqlserver (优化Sqlserver数据库)页分裂 和填充因子
  18. 已知圆柱体的底面半径c语言,C语言编程题带答案
  19. git撤销已经提交push到master或者已经合并到master的mr
  20. linux删除带用户的群组,Linux账号群组删除等相关操作

热门文章

  1. html5搜索框美化,CSS美化的漂亮搜索框
  2. kali linux samba,Kali Linux 渗透测试:SMB、SMTP扫描工具(14)
  3. basequickadapter详解_在kotlin中如何使用BaseQuickAdapter适配器
  4. PCL:点云配准1、基础知识:平面3自由度、旋转矩阵精讲
  5. Yolo模型部署的两种方法
  6. python绝对路径的区别_python学习:绝对路径和相对路径
  7. Rocksdb 利用recycle_log_file_num 重用wal-log文件
  8. s-stat 查看文件或者文件系统的状态信息
  9. Android开发教程 - 使用Data Binding(二)集成与配置
  10. Linux命令之top