
C , C++
文章平均质量分 79
fxjtoday
这个作者很懒,什么都没留下…
展开
-
C语言 -- 函数内局部数组
直接看这个例子void test(){ char b[25]; printf("%s/n",b); b[0]= 'a'; b[1] = 'b'; b[2] = 'c'; b[3]= '/0'; printf("%s/n",b);}对于上面的test函数, 如果连续调用两次, 会得到什么样的输出答案是:???abcabcabc这是我实际测出的值, 我当时很迷惑, 为什么b是局部数组, 当数组结束时这部分内存就被释放了, 而第二次原创 2010-12-09 11:08:00 · 8100 阅读 · 0 评论 -
Inside C++ object Model--对象模型概述
在C中, "数据"和"处理数据的操作"是分开声明的, 语言本身并没有支持"数据和函数"之间的关联性. 这种称为"procedural", 由一组算法函数所驱动, 他们处理的是共同的外部数据. 而C++, 则在程序风格, 更在程序的思考上有明显的差异, 它以ADT或class hierarchy的数据封装建立数据和操作的关联性. 在软件工程的眼光来看更为合理.但是程序员往往出于效率和简易性考虑而选择C.那么使用C++是否就一定意味着低效了...其实C++在布局以及存储时间上的额外负担主要是由"virtual"原创 2010-12-16 17:14:00 · 3022 阅读 · 0 评论 -
Inside C++ object Model--多态(Object-Oriented)
C++支持如下三种programming paradigms(程序设计典范):1. Theprocedural modelas programmed in C, and, of course, supported within C++. 2. The abstract data type (ADT) model in which users of the abstraction are provided with a set of operations (the public interfa原创 2010-12-17 15:41:00 · 2592 阅读 · 0 评论 -
Inside C++ object Model--构造函数
Default Constructor Construction构造函数是干啥的, 是在构造类对象的时候, 给程序员进行对象初始化操作的机会. 不仅如此, 同时也是给编译器进行对象初始化的机会. 当然程序员和编译器的扮演的角色是不一样的, 考虑的问题也是不一样的. 当程序员觉得这个类对象没有任何初始化的必要时, 他就不会特意去声明构造函数.那么对于一个类, 当程序员没有声明任何构造函数的时候, 编译器有可能会为该类声明一个default 构造函数. 之所以是'有可能', 是因为编译器也是很懒的, 如果他原创 2010-12-28 14:39:00 · 3270 阅读 · 0 评论 -
C语言易混淆关键词详解-const, static, extern, typedef, 声明
Const Const关键词并不能把一个变量变成一个常量, 在符号前加上const表示这个符号不能被赋值, 即他的值对这个符号来说是只读的, 但并不代表这个值不能用其他方法去改变. 通过下面的例子就能比较好理解, int i = 5; const int *a = &i; *a = 8; //报错, 只读不能赋值 i = 10; //OK Const最有用处的地方是用它来限定函数的形参, 来表明该函数不能修改实参指针所指向的数据. 同上面的理解, 并不表示这个数据是常量, 在函数外是可以修改的. 如原创 2010-11-19 16:10:00 · 6478 阅读 · 1 评论 -
C专家编程 笔记
C语言中的符号重载C语言非常的简洁, 以至于不愿意用太多的符号, 这样有很多符号在不同的地方有不同的含义这样会让用户很困惑, 这是c的语言特性, 也是设计上的一些失误static 在函数内部,表示该变量的值在各个调用间一直保持延续性;对于函数,表示该函数只在本文件中可见extern用于变量,表示该变量在其它地方定义;用于函数定义, 表示全局可见(属于冗余的)void 用于参数列表中,表示该函数参数为空,如int main(void);用于返回值,表示该函数返回原创 2010-11-25 15:16:00 · 2797 阅读 · 0 评论