2012年12月13日
摘要: 很长很杂 阅读全文
posted @ 2012-12-13 20:33 dartagnan 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 阅读全文
posted @ 2012-12-13 20:30 dartagnan 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 关于全局/局部变量,静态/非静态变量的问题总结:http://wenku.baidu.com/view/6390cf3610661ed9ad51f3ba.html一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。 5)... 阅读全文
posted @ 2012-12-13 18:30 dartagnan 阅读(6146) 评论(0) 推荐(0) 编辑
摘要: 1. 全局变量的初始化对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是限制那些要求复杂初始化的全局变量。 1,尽量不用全局变量 2,用静态变量,通过访问器进行访问 例如:全局变量 int a = 5; int b = a; 如果a,和b定义在同一个文件里,那没什么问题,结果b等于5. 如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化.事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的 阅读全文
posted @ 2012-12-13 18:27 dartagnan 阅读(5034) 评论(0) 推荐(0) 编辑
摘要: C语言中的全局变量内存分配和初始化顺序 阅读全文
posted @ 2012-12-13 18:26 dartagnan 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: 基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 问题:const变量 & 常量 为什么我象下面的例子一样用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢?const int n = 5;int a[n]; 答案与分析: 1)、这个问题讨论的是“常量”与“只读变量”的区别。常量肯定是只读的,例如5,. 阅读全文
posted @ 2012-12-13 18:24 dartagnan 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 对于都可以用来给对象取一个别名的Typedef和define来说,是有区别的。本文通过对typedef和define的介绍,来给读者详细的讲解它们存在的本质区别,供参考。AD:typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。例如:typedefintINTEGER;这以后就可用INTEGER来代替int作整型变量的类型说明了,如:INTEGERa,b;用typedef定义数组、指针、结构等类型将带来很大的方便 阅读全文
posted @ 2012-12-13 15:28 dartagnan 阅读(403) 评论(1) 推荐(1) 编辑