C/C++
chenxintao
移动互联网开发
展开
-
自动变量与非自动变量
自动变量 局部变量,如不作专门说明为静态变量,都是动态分配存储空间,存储在动态存储区中。这种变量叫自动变量。这种变量只在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。一般情况下,不作专门说明的局部变量,均是自动变量。自动变量也可用关键字auto作出说明。例如:(考虑到浏览器可能给作者本意要写在同一行的转载 2012-03-27 10:29:36 · 503 阅读 · 0 评论 -
sizeof用法总结
http://blog.csdn.net/wanfustudio/archive/2006/05/02/705674.aspx1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or转载 2012-10-04 19:32:26 · 627 阅读 · 0 评论 -
C++的一些基本问题
1、全局变量加 static 和不加有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义原创 2012-10-05 14:54:35 · 736 阅读 · 0 评论 -
经典面试题(四)
1、已知一个整数数组a,给定一个整数x,判断x是否数组a中某两个数之和?思路1:把数组进行排序,时间复杂度为nlogn,再用二分查找x-a[i],时间复杂度为nlogn。总的时间复杂度为nlogn。思路2:采用hash_map,把数据hash到哈希表中,可以以key-value为数据-数据出现的次数来建立哈希表,然后查找x-a[i]的数据,时间复杂度为n。2、求一个数组的最长递原创 2012-08-30 22:11:35 · 1167 阅读 · 0 评论 -
经典算法面试题解答(三)----- 最短路径、最长路径
1、最长字符连接有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。分析:将各个字符串作为一个节点,首尾链接就好比是一条边,将两个节点连接起来,于是问题就变成一个有关图的路径长度的问题。链接所得的字符串最长长度即为从图的某个节点出发所能得到的最长路径问题,与最短路原创 2012-08-18 13:02:59 · 15644 阅读 · 0 评论 -
Name Mangling in C++
摘要:详细介绍了C++中的Name Mangling的原理和gcc中对应的实现,通过程序代码和nm c++filt等工具来验证这些原理。对于详细了解程序的链接过程有一定的帮助。Name Mangling概述大型程序是通过多个模块构建而成,模块之间的关系由makefile来描述。对于由C++语言编制的大型程序而言,也是符合这个规则。程序的构建过程一般为:各个源文件分别编译,形成目标文件。转载 2012-05-20 21:12:07 · 4726 阅读 · 0 评论 -
C++位域
位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个 开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又 提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个 不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就 可转载 2012-05-27 17:08:18 · 390 阅读 · 0 评论 -
定位new表达式
这几天在看《C++ Prime》,才发现C++的博大精深,new表达式居然还有这么多种用法,out。定位new表达式只是构造对象,并没有分配内存。事实上它是在已经分配好的内存上构造对象,这样可以对同一块内存空间构造不同对象。不说废话了,给出一个例子。class Base{public:static int T;Base(int i=0){T+=i;}int x;原创 2012-05-27 14:46:27 · 497 阅读 · 0 评论 -
sizeof用法
关于sizeof(string),今天看那本面试宝典的时候看到这个表达式,有点吃惊,书上写着sizeof(string)=4;当时很纳闷,难道分配4个字节大小的内存给string吗?查阅了相关资料得出结论:string的实现在各库中可能有所不同,但是在同一库中相同一点是,无论你的string里放多长的字符串,它的sizeof()都是固定的,字符串所占的空间是从堆中动态分配的,与sizeof()无关转载 2012-04-04 01:48:29 · 385 阅读 · 0 评论 -
extern及extern “C”用法
extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字创意产品网.它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。1。对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误2。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数转载 2012-03-27 11:05:20 · 485 阅读 · 0 评论