C语言sizeof和strlen的含义,用法和区别
目录
- 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的含义,用法和区别相关推荐
- C语言 sizeof 和 strlen 函数区别 - C语言零基础入门教程
目录 一.sizeof 函数与 strlen 函数区别 1.获取字符串长度 – 针对字符串 2.获取指针/数组长度 – 针对指针/数组 3.sizeof 获取内存大小 4.经典案例 二.猜你喜欢 零基 ...
- 小说一下sizeof和strlen头文件的的区别
小说一下sizeof和strlen头文件的的区别 之前的博客对sizeof和strlen没有怎么区分,看了一些其他,现在就来补充一下 strlen 是一个函数,它用来计算指定字符串的长度,但不包括结束 ...
- C语言sizeof和strlen的区别
主要区别如下: 1.sizeof是运算符,strlen是C语言标准库函数. 2. strlen 测量的是字符串的实际长度,以'\0' 结束,返回结果不包括'\0' . 3.而sizeof 测量的是字符 ...
- C语言 - sizeof和strlen的区别
sizeof和strlen的区别: 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.s ...
- C语言sizeof()和strlen()
sizeof的功能是计算一个数据类型的大小,这个类型可以是数组.函数.指针.对象等,单位为字节,它的返回值是size_t类型,也就是unsigned int类型,是一个无符号整数. 注意:sizeof ...
- c语言sizeof和strlen哪个大,C语言的sizeof和strlen区别与联系
sizeof指的是占有空间的大小,包括字符串结束的\0.strlen是计算字符串长度,以\0作为结束标志,并且\0不计入数值. #include #include using namespace st ...
- C语言sizeof与strlen的区别与使用
前言:本文章主要用于个人复习,追求简洁,感谢大家的参考.交流和搬运,后续可能会继续修改和完善. 因为是个人复习,会有部分压缩和省略. 一.sizeof 1.sizeof用来计算类型或变量所占空间的大小 ...
- C语言sizeof与strlen详解
sizeof()详解 1.sizeof()作用:计算变量/类型所占内存大小,单位是字节.(计算字符串函数大小时包含'\0') int a = 10; int b =sizeof(a); //a为int ...
- c语言printf、sprintf、vsprintf用法和区别
printf.sprintf.vsprintf 通常用于格式化字符串,通俗来说就是字符串打印或显示格式转换. printf.sprintf 需要包含 <stdio.h> 头文件,vspri ...
最新文章
- SAP 零售行业相关的博客
- POST 变为AJAX提交代码。
- 投资最重要的事读后感_《投资最重要的事》读书笔记分享
- pmp知识点详解-项目大牛整理_PMP核心知识点—第四章:项目整合管理(一)
- beanshell字符串替换_必知必会的操作Jmeter(十六)_beanshell实现字符串加密
- 台式电脑一直跳一个计算机页面出来,我的电脑界面上莫名其妙的多出了好几个IE浏览器拜托各位了 3Q...
- 如何让你产品的用户拥有一流的上传体验
- cfd软件matlab,【流体】| 10个目前流行的CFD仿真软件,你了解几个?
- OpenXML:C#操作PPT文档
- echart显示多组数据
- 东野圭吾梦幻花读后感_东野圭吾《梦幻花》读书笔记
- 二、如何写好学术/学位论文
- 海康28181摄像头接入的注意点
- 素描初学者选择画笔,这些坑别踩
- 【C语言进阶】指针 下
- 使用Markdown追溯产品文档历史版本
- java爬虫抓取行政区划_7-爬虫爬API抓取行政区划(urllib).ipynb
- eclipse定制工具栏,修改工具栏
- 《刻意学习》读后感心得体会3000字左右
- long时间转换 java_Java longTime 和C#日期转换