【C语言】指针进阶之sizeof和strlen函数的对比

这篇具有很好参考价值的文章主要介绍了【C语言】指针进阶之sizeof和strlen函数的对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C语言】指针进阶之sizeof和strlen函数的对比,c语言,开发语言

目录

 1.sizeofyu

2.strlen函数 

 3.sizeof与strlen的对比


 文章来源地址https://www.toymoban.com/news/detail-814998.html

 1.sizeof

>>sizeof计算变量所占内存内存空间 大小 的,单位是 字节 ,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的大小。
>>sizeof 只关注占⽤内存空间的大小,不在乎内存中存放什么数据。
举个例子:
#inculde <stdio.h>
int main()
{
 int a = 10;
 printf("%d\n", sizeof(a));
 printf("%d\n", sizeof a);
 printf("%d\n", sizeof(int));
 
 return 0;
}

运行结果如下:

【C语言】指针进阶之sizeof和strlen函数的对比,c语言,开发语言

2.strlen函数 

strlen是C语⾔库函数,功能是求字符串 ⻓度 。函数原型如下:
size_t strlen ( const char * str );
统计的是从 strlen 函数的参数 str 中这个地址开始向后, \0 之前 字符串中字符的个数。
strlen 函数会⼀直向后找 \0 字符,直到找到为止,所以可能存在 越界查找
举个例子:
#include <stdio.h>
int main()
{
 char arr1[3] = {'a', 'b', 'c'};
 char arr2[] = "abc";
 printf("%d\n", strlen(arr1));
 printf("%d\n", strlen(arr2));
 
 printf("%d\n", sizeof(arr1));
 printf("%d\n", sizeof(arr1));
 return 0;
}

运行结果如下:

【C语言】指针进阶之sizeof和strlen函数的对比,c语言,开发语言

 

 3.sizeof与strlen的对比

sizeof:
1. sizeof是操作符
2. sizeof计算操作数所占内存的 大小 ,单位是 字节
3. 不关注内存中存放什么数据
strlen:
1. strlen是库函数,使⽤需要包含头⽂件 string.h
2. srtlen是求字符串⻓度的,统计的是 \0 之前 字符的隔个数
3. 关注内存中是否有 \0 ,如果没有 \0 ,就会持续往后找,可能会越界

到了这里,关于【C语言】指针进阶之sizeof和strlen函数的对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】sizeof和strlen的区别【详解】

    目录 一.sizeof和strlen的主要区别 二.sizeof和strlen分别讲解(含例题和详解) 1.sizeof 在计算字符型数组时(例题+讲解) 计算整型数组(例题+讲解) 2.strlen 例子一(讲解): 例子二(讲解) 三.典型例题 例1 答案解析: 例2 答案解析: 1. sizeof 是 运算符 ,而 strlen 是C语言库函数

    2024年02月09日
    浏览(50)
  • C语言 strlen、length、size、sizeof的区别

    strlen 是 C 语言中的函数,用于计算字符串的长度(不包括字符串末尾的\\\'\\0\\\')。 仅适用于以 null 字符结尾的字符串,即 C-style 字符串。 返回值类型为 size_t 。 length 和 size 都是 C++ 中 string 类型的成员函数,用于返回字符串的长度。 可以适用于任何字符串类型,包括 std::strin

    2024年02月06日
    浏览(41)
  • C语言之数组与strlen与sizeof区别和应用

    1.strlen 和 sizeof没有什么关联 2.strlen 是求字符串长度的-只能针对字符串求长度 - 库函数 - 使用得引头文件 3.sizeof 计算变量、数组、类型的大小-单位是字节 - 操作符 #includestdio.h int main() {     char arr1[] = \\\"abc\\\";     char arr2[] = { \\\'a\\\',\\\'b\\\',\\\'c\\\' };     printf(\\\"%dn\\\", sizeof(arr1));//4      

    2024年01月17日
    浏览(45)
  • 【C语言】指针进阶:字符指针&&数组指针&&函数指针

    ✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 🌹 感谢您的点赞与关注,同时欢迎各位有空来访我的 🍁平凡舍 回想之前,我们学了 指针 的一些基础👉 指针与结构体 我们知道了指针的概念: 指针就是

    2023年04月08日
    浏览(41)
  • strlen和sizeof的区别

    相信大多数初步了解C语言的小伙伴们,应该对strlen和sizeof都不陌生,但是在使用时总会出现或多或少的疑问,我将用这一篇博客解决困扰大家许久的问题( 仅此一篇你就会了解的透彻 ),请耐心阅读!!! 在深究strlen和sizeof的区别时,首先我们需要知道这两个函数所执行的

    2024年02月02日
    浏览(38)
  • Go语言进阶:函数、指针、错误处理

    函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明包括函数名﹑形式参数列表﹑返回值列表(可省略)以及函数体。 形式参数列表描逑了函数的参数名以及参数类型。这

    2024年02月12日
    浏览(39)
  • 【C语言进阶】⑥函数指针详解

    1.概念 函数指针 :首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址; 请看示例: 解析:parr是一个指向数组的指针,存放的是数组的地址; 所以: 数组指针 —存放数组地址的指针; 数组名 —得到的就是数组的地址; 那么我们可以不可以这么认

    2024年02月02日
    浏览(37)
  • C++中sizeof()、size()、strlen()、length()详解

    1、size 是一个 函数 ,它是在程序运行时才会计算, 用来求数组或容器中元素的个数 。 在字符串string中它与length的作用相同,只是length只能应用于string中,而不能应用于STL的容器中 2、sizeof 为 运算符 , 其结果是求对应参数的字节大小 ,它的值是在编译的时候就计算完成了

    2024年04月16日
    浏览(37)
  • 【C语言】指针的进阶(二)—— 回调函数的讲解以及qsort函数的使用方式

    目录 1、函数指针数组 1.1、函数指针数组是什么?  1.2、函数指针数组的用途:转移表 2、扩展:指向函数指针的数组的指针 3、回调函数 3.1、回调函数介绍  3.2、回调函数的案例:qsort函数 3.2.1、回顾冒泡排序  3.2.1、什么是qsort函数? 函数指针数组 是什么?首先主语是 数

    2024年02月07日
    浏览(43)
  • C语言-指针进阶-qsort函数的学习与模拟实现(9.3)

    目录 思维导图: 回调函数 qsort函数介绍 模拟实现qsort 写在最后: 什么是回调函数? 回调函数是一个通过函数指针调用的函数。 将一个函数指针作为参数传递给一个函数,当这个指针被用来调用所指向函数时, 我们就将此称为回调函数。 在举例之前,我们先学习一个C语言

    2024年02月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包