C语言 strlen(str)和sizeof(arr)的区别
C语言 strlen(str)和sizeof(arr)的区别
1. strlen()
strlen(str):表示是运算符,而不是一个函数。sizeof返回的值表示的含义如下: 该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符’\0’。返回的长度大小不包括’\0’
数组——分配的数组空间大小
指针——存储该指针所用的空间大小
类型——该类型所占的空间大小
对象——对象的实际占用空间大小
函数——函数的返回类型所占的空间大小,函数的返回类型不能是void
char arr[] ="Hello world"; char *p =arr;printf("%d\n",strlen(arr));//11printf("%d\n",strlen(p));//11
2. sizeof()
sizeof(str) 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等.
它的功能: strlen只关心存储的数据内容,不关心空间的大小和类型。
char arr[] ="Hello world"; char *p =arr;printf("%d\n",sizeof arr);//12:自动增加一个'\0' ,表示结束符 printf("%d\n",sizeof p);//4 首地址占4个字节
需要解释的是sizeof p,P为指针,返回的是首地址占4个字节长度。
总结:其作用就是返回一个对象或者类型所占的内存字节数
printf("%d\n", sizeof(char));//1printf("%d\n", sizeof(int));//4printf("%d\n", sizeof(double));//8printf("%d\n", sizeof(float));//4printf("%d\n", sizeof(1));//4
实例如下:
//32位系统 #include<stdio.h>#include<string.h>int a(char c[]){printf("%d\n",strlen(c)); //11 printf("%d\n",sizeof(c));//4 首地址占4个字节 }int main(){char arr[] ="Hello world"; char *p =arr;printf("%d\n",strlen(arr));//11printf("%d\n",strlen(p));//11printf("%d\n",sizeof arr);//12:自动增加一个'\0' ,表示结束符 printf("%d\n",sizeof p);//4 首地址占4个字节a(arr);}
C语言 strlen(str)和sizeof(arr)的区别相关推荐
- C语言strlen函数与sizeof函数的区别
strlen函数与sizeof函数的区别 strlen函数和sizeof函数都可以用于获取字符串的长度,但是它们有几个重要的区别. strlen函数返回字符串的长度,而sizeof函数返回的是整个数组 ...
- C语言中,strlen()函数与sizeof()运算符的区别以及用法区别
C语言编程中,会频繁地对数据进行操作. 其中为了防止内存的非法占用,判断数据的长度或者变量的大小是非常有必要的操作. 最常用的就是strlen()函数或者sizeof()运算符. 那么strlen() ...
- C语言再学习 -- 关键字sizeof与strlen
sizeof 一.简单介绍 sizeof 是 C 语言的一种单目操作符,如 C 语言的其他操作符++.--等.它并不是函数.C 规定 sizeof 返回 sieze_t 类型的值.这是一个无符号整数 ...
- 如何求C语言字符串长度(strlen函数和sizeof关键字)
如何求C语言字符串长度(strlen函数和sizeof关键字) 在程序里,一般会用***strlen()***函数或***sizeof()***来获取一个字符串的长度,但这2种方法获取的字符串的长度其 ...
- c语言sizeof测量字符组长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...
1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c ...
- C语言学习笔记---strlen()函数和sizeof()函数
strlen() 函数和 sizeof() 函数通常都可以用来计算数组或者字符串的长度.在使用的时候很容易混淆.下面就通过几个简单的示例来看一看这两个函数的具体差别. int main() {ch ...
- c语言字符数组的实际长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...
1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c ...
- c语言strlen()和sizeof()的区别
sizeof(type a)输出结果是 type的长度. strlen()是不包括字符串末尾'\0'的长度. note: char str[20]="hello"; str 是ch ...
- c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别
strlen(str)和str.length()和str.size()都可以求字符串长度,返回字符串中字符的长度,不包括'/0'. 其中str.length()和str.size()是同义词,返回同样 ...
最新文章
- SilverLight学习笔记--WCF服务
- 【Angular】内核
- JAVA网络编程Socket常见问题 【长连接专题】
- AJAX Control Toolkit——DropShadow(阴影和圆角框)
- mysql重新用户设置密码_mysql用户密码如何重新设置?
- 一套开源的 iOS 轻量级框架
- angular指令中的scope的详解
- 二分类模型AUC评价法
- 使用Clonezilla进行P2V,备份还原完整过程
- Foxmail中配置O365邮箱和Hotmail邮箱
- rxjs ajax query,rxjs入门之ajax封装
- 中国3D打印软件市场现状分析及发展前景预测报告
- linux之父博客,Linux25周年之际:专访 Linux 之父 Linus Torvalds
- 什么是interop
- FRM-92050:连接服务器失败
- C++创建windows窗口
- 一文看完2018苹果秋季新品发布会,你想知道的问题这里都有答案!
- python:selenium库进行网易云歌曲匹配播放
- RabbitmqCluster 磁盘不可用,disk space告警
- js转换时间戳一直转换成1970的解决方法