摘要:
基础议题。是的,pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造函数)--再也没有比这更基础的议题了。几乎最简单的C++程序也会用到其中大部分特性,只要留心下面各条款的各项忠告,你将向着一个很好的目标迈进:你所编写的软件可以清楚地表现出你的设计意图。条款一:仔细区别pointers和referencespointers和references看起来很不一样(pointers用”*”和->操作符,references用“.”操作符),但是我们都知道他们似乎做着同样的事情,都是间接的参考其他对象,那么,何时使用 阅读全文
随笔分类 - C++沉积录
C++ Static
2011-06-30 23:04 by x_feng, 437 阅读, 收藏,
摘要:
1,static是干什么的 static是C\C++中常用的修饰符,可以用来修饰局部变量,全局变量以及函数,还有在类中的使用。static改变了变量的存储方式和可见性。2,static的作用主要有3点:1.扩展生存周期,2.限制作用域,3.唯一性。以下详细讨论。另:补充一些常识。一个程序占用的内存区一般分为如下5种情况:全局/静态数据区常量数据区代码区栈堆显然程序的代码存储在代码区中,而程序的数据则要根据数据种类的不同,存储在不同的内存区。全局/静态数据区:存储全局变量及静态变量(包括全局静态变量和局部静态变量)常量数据区:存储的是常量字符串等。栈:存储自动变量或者局部变量,以及传递的函数参数 阅读全文
C++STL:Map剖析
2011-06-05 22:00 by x_feng, 801 阅读, 收藏,
摘要:
map是(键-值)对的集合,也是通常所说的关联数组。可以使用键作为下标来获取一个值,关联的本质在于元素的值与某个特定的键相关联,而并非下标。1,map简介map是一类关联容器。它的特点是:增加和删除节点对迭代器影响很小,除了那个操作节点,对其它的节点都没什么影响。对于map来说,不可以修改键,但可以修改键对应值的值。map的底层结构是:平衡二叉搜索树,也就是RB-tree(红黑树)。功能:建立key-value的对应。key和value可以是任意类型。根据key值快速查找记录,时间复杂度为log(N)。快速插入key-value记录。快速删除记录。根据key修改value记录。遍历。2,map 阅读全文
迅雷100题:数组
2011-06-04 19:44 by x_feng, 288 阅读, 收藏,
摘要:
解析:char* a[];是一个指针数组,a是数组名,a中的元素是3个char*类型的指针。那么我们看看a+1,指的是什么?既然a是数组,那么a+1就是指向a[1]的位置。那么可知:char**pa = a;p++当然指向的是a[1]的位置了。由于a[1]是一个char*型的指针,指向的是字符串”the”,因此*a[1]也就是*pa输出的是the。 解析:答案是B。很easy不解释了。 解析:答案是D,还可以通过指针传递。http://kb.cnblogs.com/page/78986/ 解析:答案是D。p1仅仅是一个指针,没有更多的空间存储p2的元素。.strcat原型:extern ch. 阅读全文
C++数组剖析
2011-06-03 14:42 by x_feng, 318 阅读, 收藏,
摘要:
(发现自己像记流水账一样,感觉条例不太清晰,也没有大牛的深入,或许这就是想写博的原因,发现不足和差距,在学习中延伸更多的东西)C++Primer曰:与vector类型相似,数组也可以保持某种类型的一组对象,它们的区别在于:数组长度固定。数组一经创建,就不允许增加新的元素。C++Primer曰:现代C++程序应尽量使用vector。设计良好的程序只有在强调速度时才在类的内部使用数组。C++Primer曰:与vector相比,数组的缺陷在于:数组长度固定,程序员无法知道一个给定数组的长度,无size操作,无push_back动态添加元素。C++Primer曰:与使用vector类型的程序相比,依赖 阅读全文
从一道笔试题中看转义字符
2011-06-01 14:22 by x_feng, 835 阅读, 收藏,
摘要:
题目如下:char s[] = “\\123456\123456\t”;printf(“%d\n”, strlen(s));A 12 B 13 C 16 D 以上都不对先不说结果如何,我们看看s[]在内存中的结构: 很清楚,char[13]数组大小为13,答案似乎是B,很不幸错了,strlen返回的长度不包括结尾空白符,答案为A 12。‘\’为转义符,转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。下图为转义字符表: char s[] = “\\123456\123456\t”;中的\\相对于一个字符\,\123中,1,2,3都满足8进制数,因此\123其实表示一个字符。那么我现 阅读全文
C++ enum剖析
2011-05-31 19:55 by x_feng, 711 阅读, 收藏,
摘要:
枚举的定义要用到关键字enum,就像类的定义用class,结构体用struct一样,enum和struct、class都是用户自定义类型,只不过枚举的内容比较简单,也不常用。如下:class myClass//类名{}mc;//类对象struct myStruct//结构体名{}ms;//结构体对象enum myEnum//枚举名{ //标识符 = 整型常数}me;//枚举对象。可以没有枚举名和枚举变量1.枚举定义enum open {in, out, app}openfile;默认第一个枚举成员赋值为0,即in = 0,后面的每个枚举成员赋的值比前面的大1。也可以显式赋值,如:enum op 阅读全文
浙公网安备 33010602011771号