c/c++
文章平均质量分 87
lushujun2011
这个作者很懒,什么都没留下…
展开
-
delete与delete[]需要注意的地方
delete与delete[]需要注意的地方1:首先来说一个大家容易忽略的问题:定义:int *p=new int;这个大家一看就知道,在内存中分配了一个int类型的空间,没错。但是我想说的是,操作系统在堆在分配了一个int类型空间给p指向的空间,但是p本身的值是在栈上,我觉的明白这个很重要。比如,你需要处理一个海量数据,这个数据需要用二维数组来表示,你如果这样定义int *ptr[M转载 2011-10-20 18:30:12 · 690 阅读 · 0 评论 -
main函数结束后还可以继续运行语句??
#include #include #include #include #include using namespace std;int atexit(void (*fuction)(void));void fn1(void),fn2(void);void main(){ atexit(fn1); atexit(fn2); cout}voi原创 2011-10-23 09:59:39 · 743 阅读 · 0 评论 -
static const 类中 成员变量的问题
原创 2011-10-25 10:18:51 · 456 阅读 · 0 评论 -
auto,register,static,volatile
register修饰符 register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码, /* Procedure for the assignment of structures, */ /* if the C compiler doesn't support this feat转载 2011-10-21 12:26:18 · 1075 阅读 · 0 评论 -
string类
string类 已知类String的原型为: class String { public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数转载 2011-10-21 12:40:14 · 589 阅读 · 0 评论 -
用c语言跳转到绝对地址0x10000执行
答案:把绝对地址转化为函数指针,即:((void*)(void)0x10000)();不用函数指针你怎么来保存函数的入口地址——函数名代表了函数的入口地址,这是因为C语言中没有函数对象,所以要用函数指针来保存函数的入口地址,在c++中引入了函数对象——stl,他是算法具有了通用性 有很多方法可以实现比如:1.把那个要跳的地址转换成一个函数指针,然后调用这个函数指针.2.原创 2011-10-21 12:29:47 · 5735 阅读 · 0 评论 -
linux 启动过程详解
随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,目前Linux的擅长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器、Web服务器、目录服务器、防火墙、文件和打印服转载 2011-10-20 19:38:56 · 962 阅读 · 0 评论 -
C++程序员应聘常见面试试题深入剖析
2.找错题 试题1:void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );//溢出} 试题2:void test2(){ char string[10], str1[10]; int转载 2011-10-20 18:33:52 · 538 阅读 · 0 评论 -
c++学习总结
C++学习总结心得分享报告人:徐霄沛一、#i nclude “filename.h”和#i nclude filename.h>的区别#i nclude “filename.h”是指编译器将从当前工作目录上开始查找此文件#i nclude filename.h>是指编译器将从标准库目录中开始查找此文件二、if语句不要将布尔变量与任何值进行比较,那会很容易出错的。相比较的转载 2011-10-20 18:32:34 · 1025 阅读 · 0 评论 -
内联函数和虚函数
内联函数:定义内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是否能形成内联函数,需要看编译器对该函数定义的具体处理。 实现 有两种实现方式: 1.在类声明的内部声明,而在类声明外部定义叫做显式内联函数,如: class display { i转载 2011-10-20 18:31:32 · 1770 阅读 · 0 评论 -
构造函数不能声明为虚函数的原因是:
解释一:所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象,如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造,还有一个原因就是为了防错,试想如果你在子类中一不小心重写了个跟父类构造函数一样的函数,那么你的父类的构造函数将被覆盖,也即不能完成父类的构造.就会出错. 解释二:虚函数的主要意义在于被派生类继承从而产生多态.转载 2011-10-19 23:59:51 · 3933 阅读 · 1 评论 -
atexit函数,main结束后,运行fn1,fn2
#include #include #include #include #include using namespace std;int atexit(void (*fuction)(void));void fn1(void),fn2(void);void main(){ atexit(fn1); //注册atexit函数,使得main结束后,fn1,f原创 2011-10-21 11:16:44 · 508 阅读 · 0 评论 -
c 重要库函数实现!strcmp strcpy strlen strstr
在linux的函数库中这几个函数写法如下: strcpy: char *strcpy(char *dest, const char *src){ char *tmp = dest; while ((*dest++ = *src++) != '\0') /* noth转载 2011-10-20 23:52:48 · 882 阅读 · 0 评论 -
C++如何处理内联虚函数
C++如何处理内联虚函数分类: C/C++2007-09-07 09:02 1946人阅读 评论(1) 收藏 举报 当一个函数是内联和虚函数时,会发生代码替换或使用虚表调用吗? 为了弄清楚内联和虚函数,让我们将它们分开来考虑。通常,一个内联函数是被展开的。class CFoo {private:int val;public:int GetVal() { retur转载 2011-10-20 00:00:09 · 662 阅读 · 0 评论 -
C++中调用C的函数
如果在C++中调用C的函数,要加一个声明extern "C " void test();表明这个函数是C函数 如果在c头文件中有 #ifdef __cplusplus extern "C " { #endif //函数声明 #ifdef __cplusplus } #endif 则在C++中include 这个头文件就转载 2011-10-21 01:33:15 · 476 阅读 · 0 评论 -
assert 断言 使用
断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式。预处理器产生测试该断言的代码,如果断言不为真,则发出一个错误信息告诉断言是什么以及它失败一会,程序会终止。 我们一般可以用在判断某件操作是否成功上。摘录林锐博士高质量编程一书中相关内容。~~~~~~~~~~~~~~~~~~~~~~~~程序一般分为Debug版本和Release转载 2011-10-21 00:21:13 · 816 阅读 · 0 评论 -
面试笔试题重要~
2.找错题 试题1:void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );//溢出} 试题2:void test2(){ char string[10], str1[10]; int转载 2011-10-20 00:39:36 · 808 阅读 · 0 评论 -
C++中值传递,地址传递,引用传递的区别
一.函数参数传递方式之一:值传递1. 值传递的一个错误认识 先看题一中Exchg1函数的定义:void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数{ int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d\n”,x,y)}问:你认为这个函数是转载 2011-10-19 23:57:06 · 8638 阅读 · 3 评论 -
求字符串的全排列
//求字符串的全排列02#include03#include04#include05using namespace std;06void print_arran转载 2011-10-25 23:07:14 · 900 阅读 · 0 评论