字符串中sizeof和strlen的区别,以及'\0'与NULL的区别
来源:互联网 发布:plsql导入数据和表结构 编辑:程序博客网 时间:2024/06/05 19:54
程序
#include<iostream>#include<string.h>using namespace std;int main(){ char ss[]="0123456789"; cout<<strlen(ss)<<endl; cout<<sizeof(ss)<<endl; for(int i=0;i<strlen(ss);i++) { cout<<ss[i] <<endl; } cout<<'\0'<<endl; cout<<NULL<<endl; return 0;}
运行结果
从中可以发现:
strlen(ss)的结果为10,而sizeof(ss)的结果却是11,这是为什么呢?
原因是当用字符串给字符数组赋值时,字符数组默认在其末尾加上结束标志,也就是’\0’,即字符数组的最后一个字符为’\0’。strlen()函数计算到结束标志的前一个字符,在这里是’9’,所以结果为10;而sizeof()则计算到结束标志,所以结果为10+1=11。
strlen()函数的实现:int strlen(char s[]){int num=0;int i=0;while(s[i]!='\0'){num++;i++;}return num;}
打印’\0’时输出为空,而打印NULL却输出为0。后者是因为NULL在C++中值定义为0,但前者我就不知道了,哪位大神可以告诉我
0 0
- 字符串中sizeof和strlen的区别,以及'\0'与NULL的区别
- 字符串中sizeof 和 strlen 的区别
- sizeof的使用以及sizeof与strlen的区别
- C++中sizeof与strlen的区别
- 数组中sizeof与strlen的区别
- sizeof和strlen的区别与联系
- strlen 和 sizeof的区别与解析
- sizeof与strlen的区别和不同
- sizeof()和strlen()的区别与联系
- sizeof与strlen的区别和联系
- strlen与sizeof的区别和用法
- sizeof和strlen的使用与区别
- C语言中sizeof和strlen的区别与联系
- char*中sizeof和strlen的区别
- c++中sizeof和strlen的区别
- c++中sizeof和strlen的区别
- 字符串和字符数组的区别以及sizeof和strlen的区别
- sizeof与strlen的区别
- 4412 矩阵键盘
- ie浏览器的标准模式与怪异模式的设置与区分方法
- css vertical-align属性详解
- 【DP】poj1458
- iOS Crash 分析(文一)- 开始
- 字符串中sizeof和strlen的区别,以及'\0'与NULL的区别
- GridView详解
- std::function
- 单纯地“世故”——laugh off & see through
- 详细分析Hibernate的merge()方法
- 天梯匹配算法的思路
- 第3章40题
- iOS Crash 分析(文二)-崩溃日志组成
- 鼠标事件-鼠标位置和鼠标滚轮