当前位置: 首页 > news >正文

C语言中函数sizeof和strlen区别

sizeofstrlen是C语言中的两个常用函数,它们的作用和使用方式有所不同。

  1. sizeof
  • sizeof是一个运算符而非函数,用于计算数据类型或变量占用的字节数。它可以计算任意数据类型(包括基本类型、自定义结构体、数组等)的大小。
  • 例如,sizeof(int)返回整型的字节数,通常是4个字节;sizeof(double)返回双精度浮点数的字节数,通常是8个字节。
  • sizeof在编译时求值,并且结果是一个常量表达式。
    int arr[10];
    size_t size = sizeof(arr); // 计算数组arr占用的总字节数
    printf("数组arr占用 %zu 字节\n", size);struct Point {int x;int y;
    };
    size_t structSize = sizeof(struct Point); // 计算结构体Point占用的总字节数
    printf("结构体Point占用 %zu 字节\n", structSize);
    
  • 结果为:
  • 2.strlen(使用时需要包含头文件#include<string.h>,sizeof则不用包含)
  • strlen是一个字符串处理函数,用于计算以null字符('\0')结尾的字符串的长度(不包括null字符本身)。
  • 它需要传入一个指向字符串首字符的指针作为参数,并从该位置开始逐个检查字符直到遇到null字符。
  • 返回值是一个无符号整数(size_t)表示字符串的长度。
char str[] = "Hello, world!";
size_t length = strlen(str); // 计算字符串str的长度
printf("字符串str长度为 %zu\n", length);

运行结果为:

strlen函数只适用于以null字符结尾的C风格字符串,即使用字符数组表示的字符串。如果传入一个指针指向非法内存区域或者没有以null字符结尾的字符序列,将导致未定义行为(undefined behavior)。

综上,sizeof计算数据类型或变量占用的字节数,而strlen计算以null字符结尾的字符串的长度。

http://www.lryc.cn/news/429022.html

相关文章:

  • RAG与LLM原理及实践(14)---- Python + MinIO + Kafka进阶
  • 接口自动化-代码实现
  • 如何查看linux大文件
  • 生成式人工智能服务大模型备案答疑
  • QT-贪吃蛇小游戏
  • 虚幻5|AI视力系统,听力系统,预测系统(1)视力系统
  • IC rankIC
  • Windows服务器IIS7下如何查看真实报错原因
  • 深度学习设计模式之策略模式
  • Linux 下安装miniconda(少走弯路)
  • java ssl使用自定义证书
  • 【ARM+Codesys 客户案例 】基于RK3568/A40i/STM32+CODESYS开发的控制器在自动输送分拣系统上的应用,支持定制
  • C++ 设计模式(1. 单例模式)
  • 算法笔记|Day31动态规划IV
  • CSS文字方向控制属性text-orientation
  • 配置typora上传图片到Chevereto图床
  • Java面试八股之如何保证消息队列中消息不重复消费
  • 0.91寸OLED迷你音频频谱
  • 机器学习--特征工程常用API
  • 块级LoRA:个性化与风格化在文本到图像生成中的新突破
  • redis的数据结构——压缩表(Ziplist)
  • 探索未知,悦享惊喜 —— 您的专属盲盒一番赏小程序盛大开启
  • dompdf导出pdf中文乱码显示问号?
  • 韩顺平Java-第二十四章:MYSQL基础篇
  • 【动态规划算法题记录】最长/最大 问题汇总 (leetcode)
  • 2020 位示图
  • 富格林:防止陷入黑幕欺诈平台
  • Cookie、Session 、token
  • Json-类型映射使用TypeFactory或者TypeReference
  • Linux shell编程学习笔记73:sed命令——沧海横流任我行(上)