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

您所在的位置:网站首页 strlen包不包括空格 c语言的字符数组strlen的详细使用

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

2024-07-17 12:20| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、字符数组中strlen的使用详解1、字符数组中strlen(arr+0)2、字符数组中strlen(*arr)和strlen(arr[1])3、字符数组中strlen(&arr)4、字符数组中strlen(&arr+1)5、字符数组中strlen(&arr[0]+1) 在这里插入图片描述

前言

大家好🤞,我是一名初学者,在这里我我来分享一下自己所学到的知识

我想大家对c语言中的sizeof和strlen并不陌生😸,那么就由我来给大家详细🧐的讲解一下关于在字符数组和字符串数组中的使用方法

希望自己分享的知识可以帮助到大家😉

👻👻👻开始上课!!!!!!!!!

一、字符数组中strlen的使用详解

代码如下(示例):

#include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(arr);//随机值 //因为这里不知道'/0'在哪里,所以我们这里的长度时要直到遇到‘/0’才会结束。 return 0; } 这里的运行结果是什么呢????🧐 首先我们要对 strlen函数有一定的了解 那么strlen到底是干嘛的呢? 1.🎈strlen所作的仅仅是一个计数器的工作, 它从内存的某个位置,可以是字符串开头,中间某个位置, 甚至是某个不确定的内存区域开始扫描, 直到碰到第一个字符串结束'\0为止,然后返回计数器值,**长度不包含\0。** 2🎈.strlen函数求的是字符串的实际长度, 它求得方法是从开始到遇到第一个\0, 如果你只定义了一个字符型数组但没有给它赋初值, 这个结果是不定的,它会从首地址一直找下去,**直到遇到\0停止。**

数组内存排布: 在这里插入图片描述

1、字符数组中strlen(arr+0) #include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(arr+0);//随机值 return 0; } 这里的运行结果是什么呢????🧐 这里的结构还是随机值 因为**直到遇到\0停止。** 2、字符数组中strlen(*arr)和strlen(arr[1]) #include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(*arr)//报错了!!! a=97 97地址 报错 语法错误不可以这样写 return 0; }

这里数组名arr 不就是首元素的地址吗 *arr不就是把数组名解引用了吗,所以我们在这里传过去的 就是字符‘a’ 字符的a,a的ASCII就是97,🤡也就是相当于把97放入了strlen(97) 🧐strlen(这里要的不适应是地址吗)我们现在放入97所以就会报错 😲你们可能是这样的表情吧 ,大家明白了吗??

#include int main() { char arr[] = { 'a','b','c','d','f' }; srlen(arr[1])//报错 98作为地址是错误的 return 0; } 3、字符数组中strlen(&arr) #include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(&arr)//随机值 return 0; } 这里的运行结果是什么呢????🧐 因为传过去的是指针 4、字符数组中strlen(&arr+1) #include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(&arr+1)//随机值-6 return 0; }

这里为什么是随机值-6呢???🎯 &arr+1:&arr表示整个数组的地址+1 这里用图片解释: 在这里插入图片描述

5、字符数组中strlen(&arr[0]+1) #include int main() { char arr[] = { 'a','b','c','d','f' }; strlen(&arr[0]+1)//随机值-1 return 0; }

这里为什么又是随机值-1呢???😝😝 那么我们还是用图片来解释一下 ,这样可以使我们更能充分的理解 在这里插入图片描述 下课!!! 🎈🎈🎈



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3