关于sizeof和strlen !!!
来源:互联网 发布:快更视频软件 编辑:程序博客网 时间:2024/05/21 09:39
已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a',}; char ss[] = "0123456789";为什莫 sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(ss)=11
str1是一个指针,只是指向了字符串"absde"而已。所以sizeof(str1)不是字符串占的空间也不是字符数组占的空间,而是一个字符型指针占的空间。所以sizeof(str1)=sizeof(char*)=4,在C/C++中一个指针占4个字节str2是一个字符型数组。C/C++规定,对于一个数组,返回这个数组占的总空间,所以sizeof(str2)取得的是字符串"absde"占的总空间。"absde"中,共有a b s d e \0六个字符,所以str2数组的长度是6,所以sizeof(str2)=6*sizeof(char)=6str3已经定义成了长度是8的数组,所以sizeof(str3)为8str4和str2类似,'0' '1' ... '9'加上'\0'共11个字符,所以ss占的空间是8总之,对于指针,sizeof操作符返回这个指针占的空间,一般是4个字节;而对于一个数组,sizeof返回这个数组所有元素占的总空间。char*与char[]容易混淆,一定要分清,而且char*="aaa"的写法现在不被提倡,应予以避免而strlen不区分是数组还是指针,就读到\0为止返回长度。而且strlen是不把\0计入字符串的长度的。
0 0
- 关于sizeof 和strlen
- 关于sizeof和strlen !!!
- 关于sizeof和strlen
- 关于sizeof和strlen !!!
- 关于strlen 和 sizeof
- 关于sizeof和strlen !!!
- 关于sizeof和strlen
- 关于strlen和sizeof
- 关于sizeof()和strlen()
- 关于sizeof和strlen的区别
- 关于strlen和sizeof的陷阱
- 关于sizeof和strlen的区别
- 关于sizeof 和 strlen的区别
- 关于strlen()和sizeof的题目
- 关于sizeof 和 strlen的区别
- 关于sizeof和strlen的使用
- 关于sizeof 和strlen 的用法
- 关于sizeof和strlen的区别
- C# 角度转换、弧度转换
- mysql 命令
- C语言程序员必读的5本书
- RTEMS 移植 CS8900网卡成功
- linux下如何模拟按键输入和模拟鼠标
- 关于sizeof和strlen !!!
- 10个非常不错的CSS技巧
- Windows 7开启ping
- 关于ADB server didn't ACK的问题
- WEB站点性能优化实践(加载速度提升2s)
- 在Linux/unix中设置环境变量
- 苹果开发的资源
- 25 个可免费下载的网页按钮 PSD 设计稿
- jboss7设置url 支持中文