我是靠谱客的博主 缥缈枕头,最近开发中收集的这篇文章主要介绍C/C++查看变量大小和数组长度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里总结一下C/C++中查看变量大小,数组长度等的方法。

本文代码在windows 8.1下使用Dev-c编写,测试。

strlen函数,查看字符串长度:

1//头文件
2#include <cstring>   //c++
3//或者
4#include<string.h>  //c
5//函数原型
6 extern unsigned int strlen(char *s)

strlen做的是一个计数器的工作,函数传入一个char类型指针,从指针处开始扫描直到碰到字符串结束符‘’为止返回计数器值不计算在内)。

注意点:准确的说是C格式字符串的注意点,注意最后是否‘’结束符。不然,可能造成内存越界

STL中的size()和lengh():

STL中,容器的长度等,建议使用其自带的成员函数查看,size()通常是查看使用大小的(不同的容器有不同实现)。

length()是string独有的,查看string中字符串长度,后来为了统一接口,string也加入了size()

内部实现原理和strlen相同,但是由于STL的封装性,比C风格字符串要安全。

length()和size()的实现是一样的,所以,为了增加代码重用性,建议使用size()

关于empty()和size():

通常而言,有empty(),意味着如果只是查看容器是否为空,则建议使用empty()。但有人反对,依据是下面的代码:

1 bool empty() const
2         {return (size() == 0); }

显然,这个写法的话,二者的复杂度没有区别。但是也有不同的实现,如下:

1bool
2 empty() const
3 return begin() == end(); }

这回就明白了,之所以建议使用empty()是因为不同的容器有不同的实现。有的容器empty()实现可能是O(1)的复杂度。所以,无论如何,使用empty()肯定不是坏事

sizeof操作符:

很多人可能被误导,以为sizeof是函数,事实上sizeof是一个操作符,不信的话可以去掉所有头文件,看看sizeof可否通过编译

1//sizeof(类型说明符,数组名或表达式);
2//或sizeof 变量名
3 sizeof(object);              //sizeof(对象);
4 sizeof(type_name);     //sizeof(类型);
5 sizeof object;              //sizeof 对象;

 sizeof返回的是字节数:

  • 对于变量,返回的是变量类型的字节数
  • 对于数组,返回的是数组的字节数。如果需要知道数组长度,可以sizeof(数组)/sizeof(数组类型)。

注意:

  • 指针是个特殊的变量。
  • C++的动态绑定时,sizeof计算出的是动态绑定的对象类型的字节数。

转载请注明:旅途@KryptosX » C/C++查看变量大小和数组长度

最后

以上就是缥缈枕头为你收集整理的C/C++查看变量大小和数组长度的全部内容,希望文章能够帮你解决C/C++查看变量大小和数组长度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部