C语言中sizeof()和strlen()的区别(详解版)

article/2025/10/19 11:09:20

很多小白刚刚接触C语言的时候,总是会混淆sizeof()与strlen()的区别和用法,接下来呢,蔡姐就带小白们深入了解一下这两个东西。

区别

1.sizeof是C语言中的一个单目运算符,用来计算数据类型所占空间的大小,单位为字节;而strlen是一个函数,用来计算字符串长度。

2.sizeof()

#include <stdio.h>
int main()
{//计算各种数据类型所占空间的大小printf("int=%d\n",sizeof(int));printf("char=%d\n",sizeof(char));printf("float=%d\n",sizeof(float));printf("double=%d\n",sizeof(double));printf("short=%d\n",sizeof(short));printf("long=%d\n",sizeof(long));printf("long double=%d\n",sizeof(long double));return 0;} 

另外,我们思考一个问题,指针变量所占空间大小为多少字节呢?(可能有些小白还未涉及到指针)答案是:4个字节;为什么呢?因为指针就是地址呀,所以指针里面放的都是地址,而地址的长度当前是由地址总线的位数决定的,现在的计算机一般都是32位的地址总线,也就是占4个字节

 3.strlen()

是一个函数,需要引用头文件#include <string.h>,求字符串长度,返回计算的字符串的实际长度,即不包括‘\0’在内的实际字符的长度。

若没有引用头文件,将会出现如下警告:

我们插入代码,来看看二者的区别

#include <stdio.h>
#include <string.h>
int main()
{char arr1[]="abcd";//d的后面自动补上\0;char arr2[]={'a','b','c','d'};//以单个元素赋值,没有\0的结束符printf("strlen1=%d\n",strlen(arr1));//strlen()计算\0之前的字符长度printf("strlen2=%d\n",strlen(arr2));//该处计算结果应为随机值,因为arr2[]没定义元素个数,就无法知道在哪能遇到\0;printf("sizeof1=%d\n",sizeof(arr1));//计算了包含\0的数据空间大小printf("sizeof2=%d\n",sizeof(arr2));return 0;} 

 

 总结摘要:sizeof就是一个计算数据类型所占空间大小的单目运算符,在计算字符串的空间大小时,包含了结束符\0的位置;而strlen是一个计算字符串长度的函数,使用时需要引用头文件#include <string.h>,不包含\0,即计算\0之前的字符串长度。欧耶!


http://chatgpt.dhexx.cn/article/1i2TEwBy.shtml

相关文章

初始C语言,strlen函数和sizeof关键字的使用

初学入门 纯新手 粗略认识c语言 sizeof关键字 和 starlen 函数 的区别 -------------&#x1f449;sizeof sizeof 是一个关键字&#xff0c;而不是一个函数&#xff0c;可用于一个数据类型或者表达式。 如 int main() {int arr1[] { 1,2,3,4,5,6,7,8 };char crr1[] { 1,…

C语言strlen库函数的讲解

C语言strlen库函数的讲解 附1&#xff1a;MSDN关于库函数strlen的解释 思路&#xff1a; 1.从MSDN中关于strlen库函数的讲解中我们可以知道的是&#xff0c;strlen库函数的头文件是<string.h>&#xff0c;该库函数返回的类型是无符号整形&#xff08;size_t/unsigned i…

【C语言】strlen函数的讲解和模拟实现

文章目录 strlen函数的讲解strlen函数的模拟实现计数器方式递归的方式指针减指针的方式 strlen函数的讲解 strlen函数我们应该不陌生&#xff0c;它可以帮助我们求字符串的长度&#xff08;不包括’\0’&#xff09;&#xff0c;但里面还有一些细节需要我们注意。看一下下面这…

【C语言之区分sizeof 和 strlen】

C语言之区分sizeof 和 strlen 详解C语言sizeof 和 strlen1、单目操作符1.1、详解sizeof单目操作符1.2、sizeof代码部分1.2.1、sizeof例程11.2.2、sizeof例程21.2.3、sizeof例程3 2、详解strlen函数2.1、strlen代码部分2.1.1、strlen例程1 3、区别strlen函数和sizeof操作符3.1、…

用C语言实现strlen函数

按照惯例&#xff0c;我们先上代码&#xff1a; #include <stdio.h> #include <assert.h>size_t my_strlen(const char* arr)//size_tunsigned int 无符号整型 {assert(arr ! NULL);int i 0;int count 0;while(arr[i] ! \0){count;arr;}return count; } int main…

c语言的字符数组strlen的详细使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、字符数组中strlen的使用详解1、字符数组中strlen&#xff08;arr0&#xff09;2、字符数组中strlen&#xff08;*arr&#xff09;和strlen&#xff08;arr[…

C语言实现strlen的三种方法

目录 1.strlen介绍 strlen --- 求字符串长度 2.如何使用strlen库函数 3.三种方法实现strlen 计数器法&#xff1a; 递归法&#xff1a; 指针-指针法&#xff1a; 4.关于strlen返回值 1.strlen介绍 strlen --- 求字符串长度 size_t strlen (const char* str); 找到字符…

C语言:strlen函数

目录 一、strlen&#xff08;&#xff09;函数的简介二、strlen&#xff08;&#xff09;的三种实现方法2.1第一种方法&#xff08;直接&#xff09;2.2第二种方法&#xff08;递归&#xff09;2.3第三种方法&#xff08;指针-指针&#xff09; 三、总结 一、strlen&#xff08…

C语言学习之sizeof与strlen

1.二者的概念 1.sizeof sizeof是C语言中的一个关键字&#xff0c;sizeof(a)表示的是a所占内存空间的大小&#xff0c;单位是字节。在字符数组中会统计‘\0’所占空间。其返回类型为size_t类型&#xff0c;C99和C11提供%zd转换说明匹配sizeof的返回类型&#xff08;即&#xff0…

c语言strlen用法,如何使用c语言中的strlen()函数

c语言中strlen()函数的用法是&#xff1a;【strlen(const char *str)】。该函数用于计算字符串的长度&#xff0c;直到空结束字符&#xff0c;但不包括结束字符&#xff0c;并返回字符串的长度。 函数介绍&#xff1a; (推荐教程&#xff1a;c语言教程) strlen()函数用于计算字…

C语言中strlen和sizeof的区别

1.strlen是一个库函数使用时需要引用#include<string.h>这个头文件&#xff0c;而sizeof是一个运算符号&#xff1b; 2.strlen计算的是\0之前的字符个数&#xff0c;sizefo计算的是所占空间内存的大小&#xff0c;单位是字节&#xff1b; 3.strlen计算时不包含\0&#…

C语言的库函数:strlen的用法

首先&#xff0c;strlen使可以计算字符串的长度&#xff0c;且只能用于字符串&#xff0c;计算的是\0之前的字符个数。 因为strlen是库函数&#xff0c;所以其头文件是string.h #include<stdio.h> #include<string.h> int main() {char arr[]{"abcdef"…

C语言strlen函数详解

strlen函数详解 一.strlen函数简介1.函数原型2.注意事项 二.strlen函数模拟实现1.计数器方式2.递归实现3.指针-指针实现 一.strlen函数简介 1.函数原型 size_t strlen ( const char * str );2.注意事项 ①字符串以 ‘\0’ 作为结束标志&#xff0c;strlen函数返回的是在字符…

C语言:Strlen()函数你了解多少?

一、strlen&#xff08;&#xff09;函数的介绍及用法 C语言中strlen是一种函数&#xff0c;主要用于计算字符串的长度。 &#x1f6a9;strlen&#xff08;&#xff09;从字符串的开头位置依次往后面计数&#xff0c;直到遇到‘\0’停止&#xff0c;所计算的字符串大小为‘\0’…

【C语言】strlen()函数

目录 一、strlen&#xff08;&#xff09;函数的简介 二、strlen&#xff08;&#xff09;函数的具体使用 三、使用strlen函数的注意事项 四、实现strlen函数功能的三种方式 1.计数器的方式 2.递归的方式 3.指针减指针的方式 总结 一、strlen&#xff08;&#xff09;…

C语言strlen()函数

strlen()函数&#xff1a;该函数从第一个字符开始计算字符串中字符数&#xff0c;直到遇到空字符即\0为止&#xff0c;然后返回计算字符数的长度&#xff0c;包括\0。 以下是strlen()函数代码&#xff0c;如下&#xff1a; ##include <stdio.h> #include <string.h&…

jQuery属性概述

jQuery属性 1 操作元素属性1.1 读取属性1.2 修改属性1.3 删除属性 2 操作样式类2.1 添加类2.1 判断类2.3 移除类2.4 交替类 3 操作CSS3.1 操作CSS样式3.2 操作宽和高 4 操作页面内容4.1 操作HTML代码4.2 操作文本内容4.3 操作值 5 查找与筛选元素5.1 过滤&#xff08;Filtering…

jQuery四:获取、设置、移除属性;attr(“href“)、attr(“href“,“http://www.baidu.com“)、removeAttr(“href“);

attr()方法是用于设置标签的属性&#xff0c;比如src&#xff0c;href&#xff0c;title&#xff1b;&#xff08;这些更多的是元素的基本属性&#xff0c;HTML的属性&#xff09;&#xff1b; 目录 一&#xff1a;操作元素属性 &#xff08;1&#xff09;attr()方法&#x…

Rigidbody2D ( Simulated )

bool类型,设为false后则不会模拟刚体。

[ 游戏开发日记with Unity ] 首先,认识你自己,或者说Player吧。 有关于Rigidbody2D和Collider的一些使用知识

写在前面 这个系列&#xff08;坑&#xff09; 来自一个用Unity开发的2D横版射击游戏的开发过程&#xff0c;用来记录学习进度以及一些学习心得。和大家分享共勉&#xff0c;有错误的话请评论指出&#xff0c;我会积极回复。 那么&#xff0c;我们开始吧 Q.问题是什么&#xf…