目录

  • strlen( )
    • strlen( )的含义
    • strlen( )函数的用法
  • sizeof( )
    • sizeof( )的含义
    • sizeof( )的用法
  • 它俩的区别

strlen( )

strlen( )的含义

strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)

这是百度百科给出的strlen()的含义,说白了strlen()就是一个放在string.h这个头文件中的一个函数,其原型为: unsigned int strlen (char *s),返回值是字符串的长度,设计这个函数的目的是计算 字符串 字符串 字符串 的长度 不是 的长度。
先来说一下什么事字符串:
char ch1[30] = { ‘S’, ‘t’, ‘a’, ‘y’, ’ ', ‘h’, ‘u’, ‘n’, ‘g’, ‘r’, ‘y’, ‘,’, ‘S’, ‘t’, ‘a’, ‘y’, ’ ', ‘f’, ‘o’, ‘o’, ‘l’, ‘i’, ‘s’, ‘h’, ‘.’ };这就是初始化了一个字符串数组
char ch2[30] = “Stay hungry,Stay foolish.”; 这是ch1的简化版

strlen( )函数的用法

这里直接举个例子:

#include <stdio.h>
#include <string.h> //strlen() 放在这个库中
int main()
{char ch1[30] = "Stay hungry,Stay foolish.";char ch2[30] = { 'S', 't', 'a', 'y', ' ', 'h', 'u', 'n', 'g', 'r', 'y', ',', 'S', 't', 'a', 'y', ' ', 'f', 'o', 'o', 'l', 'i', 's', 'h', '.' };printf("strlen(ch1)=%d strlen(ch2)=%d ", strlen(ch1),strlen(ch2));return 0;
}

下面是运行结果:

这是我自己写的strlen()函数的原型可以辅助理解一下strlen的作用:

unsigned int Mystrlen(char* str)
{unsigned int length = 0;while ((*str) != '\0'){length++ ;str++ ;}return length;
}

sizeof( )

sizeof( )的含义

C语言中sizeof( )是一个关键字,也可以看作是一个运算符,一个单目运算符(作用对象只有一个表达式)。 它的作用对象是变量类型,或者是变量。

sizeof( )的用法

对象为变量类型时,它会算出该变量类型在你计算机上的字节大小:

int main(){printf("sizeof(char)=%d\nsizeof(short)=%d\nsizeof(int)=%d\nsizeof(long)=%d\n", sizeof(char),sizeof(short),sizeof(int),sizeof(long));printf("sizeof(float)=%d\nsizeof(double)=%d\nsizeof(char*)=%d\nsizeof(int*)=%d\n", sizeof(float), sizeof(double), sizeof(char*), sizeof(int*));return 0;
}

下面是运行结果:

对象为变量时,它会算出该变量的字节大小:

int main()
{char ch1[30] = "Stay hungry,Stay foolish.";char ch2[30] = { 'S', 't', 'a', 'y', ' ', 'h', 'u', 'n', 'g', 'r', 'y', ',', 'S', 't', 'a', 'y', ' ', 'f', 'o', 'o', 'l', 'i', 's', 'h', '.' };char ch3 = 's';int a = 3;printf(" sizeof(ch1)=%d\n sizeof(ch2)=%d\n sizeof(ch3)=%d\n sizeof(a)=%d\n", sizeof(ch1), sizeof(ch2), sizeof(ch3), sizeof(a));return 0;
}

运行结果如下:

它俩的区别

区别从上方的例子中就可以看出,strlen是只针对于计算字符串长度的一个函数 ,而sizeof则是一个运算符一个关键字,sizeof针对的对象的范围要广很多。
就对于计算字符串长度来说,一个字符串存于一个数组中,sizeof是在计算这个数组的大小,而strlen是在计算这个数组中有多少字符。
例子:

int main()
{char ch1[30] = "Stay hungry,Stay foolish.";printf(" strlen(ch1)=%d\n sizeof(ch1)=%d \n\n", strlen(ch1), sizeof(ch1));return 0;
}

运行结果如下:

菜鸟总结,有错误的地方希望指正,谢谢。

C语言sizeof和strlen的含义,用法和区别相关推荐

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

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

  2. 小说一下sizeof和strlen头文件的的区别

    小说一下sizeof和strlen头文件的的区别 之前的博客对sizeof和strlen没有怎么区分,看了一些其他,现在就来补充一下 strlen 是一个函数,它用来计算指定字符串的长度,但不包括结束 ...

  3. C语言sizeof和strlen的区别

    主要区别如下: 1.sizeof是运算符,strlen是C语言标准库函数. 2. strlen 测量的是字符串的实际长度,以'\0' 结束,返回结果不包括'\0' . 3.而sizeof 测量的是字符 ...

  4. C语言 - sizeof和strlen的区别

    sizeof和strlen的区别: 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.s ...

  5. C语言sizeof()和strlen()

    sizeof的功能是计算一个数据类型的大小,这个类型可以是数组.函数.指针.对象等,单位为字节,它的返回值是size_t类型,也就是unsigned int类型,是一个无符号整数. 注意:sizeof ...

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

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

  7. C语言sizeof与strlen的区别与使用

    前言:本文章主要用于个人复习,追求简洁,感谢大家的参考.交流和搬运,后续可能会继续修改和完善. 因为是个人复习,会有部分压缩和省略. 一.sizeof 1.sizeof用来计算类型或变量所占空间的大小 ...

  8. C语言sizeof与strlen详解

    sizeof()详解 1.sizeof()作用:计算变量/类型所占内存大小,单位是字节.(计算字符串函数大小时包含'\0') int a = 10; int b =sizeof(a); //a为int ...

  9. c语言printf、sprintf、vsprintf用法和区别

    printf.sprintf.vsprintf 通常用于格式化字符串,通俗来说就是字符串打印或显示格式转换. printf.sprintf 需要包含 <stdio.h> 头文件,vspri ...

最新文章

  1. SAP 零售行业相关的博客
  2. POST 变为AJAX提交代码。
  3. 投资最重要的事读后感_《投资最重要的事》读书笔记分享
  4. pmp知识点详解-项目大牛整理_PMP核心知识点—第四章:项目整合管理(一)
  5. beanshell字符串替换_必知必会的操作Jmeter(十六)_beanshell实现字符串加密
  6. 台式电脑一直跳一个计算机页面出来,我的电脑界面上莫名其妙的多出了好几个IE浏览器拜托各位了 3Q...
  7. 如何让你产品的用户拥有一流的上传体验
  8. cfd软件matlab,【流体】| 10个目前流行的CFD仿真软件,你了解几个?
  9. OpenXML:C#操作PPT文档
  10. echart显示多组数据
  11. 东野圭吾梦幻花读后感_东野圭吾《梦幻花》读书笔记
  12. 二、如何写好学术/学位论文
  13. 海康28181摄像头接入的注意点
  14. 素描初学者选择画笔,这些坑别踩
  15. 【C语言进阶】指针 下
  16. 使用Markdown追溯产品文档历史版本
  17. java爬虫抓取行政区划_7-爬虫爬API抓取行政区划(urllib).ipynb
  18. eclipse定制工具栏,修改工具栏
  19. 《刻意学习》读后感心得体会3000字左右
  20. long时间转换 java_Java longTime 和C#日期转换

热门文章

  1. 边工作边刷题:70天一遍leetcode: day 6
  2. 套接字初始化失败问题
  3. 利用iperf进行WiFi吞吐量的测试方法
  4. Microsoft MVC3 框架
  5. JavaScript程序开发(十四)—函数声明与函数表达式
  6. opencv基于DNN的人脸检测
  7. java 字符串倍_java字符串拼接与性能分析详解
  8. L3-2 还原文件 (30 分)
  9. 7-32 中位数 (10 分)
  10. 7-54 查验身份证 (15 分)