Test Header HTML Code

随笔分类 -  C&C++

数组的初始化方法大全
摘要:#include <stdio.h>#include <stdlib.h>#include <string.h>对于数组,有以下几个原则:int main(int argc, char *argv[]){ char a[10] = {'\0'}; //{0, ..., 0}第1个为0,后面的0为系统自动补的,所以这种行为可以用来进行字符串的初始化 int b[10] = {1, 2, 3,}; //{1, 2, 3, 0, ..., 0}后面7个0为系统自动补的 int c[10]; memset(c, 0, sizeof(int) * 10 阅读全文

posted @ 2011-04-06 10:43 宁静的水泡 阅读(634) 评论(0) 推荐(0) 编辑

关于C++返回引用的问题
摘要:Effective C++ 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用这里可以分为2部分:1,局部对象:因为返回之后该局部对象已经被释放了。2内部new的对象:不能让外部通过引用来释放这里new的对象,别人会很纳闷,故会泄漏内存。这里我要对1进行一下分析: 1 #include <iostream> 2 3 class A 4 { 5 friend std::ostream& operator<<(std::ostream& out, const A &a); 6 public: 7 A(int i) : 阅读全文

posted @ 2011-03-19 11:44 宁静的水泡 阅读(4559) 评论(0) 推荐(0) 编辑

C++的函数调用
摘要:C++的成员函数本质上跟C的函数差不多,我认为其函数地址是固定的。比如class A{public: void f1() {} virtual f2(); void f3() { m_value = 0; }private: int m_value;};f1, f2,f3的地址是固定的,每个对象调用函数时,只是会把对象本身的地址指针this传入,函数内部通过this指针查找成员变量与虚函数表等信息,因为成员变量和虚函数表是每个对象相关的,而函数地址是固定的,只是代码段中的一段指令。A *a = new A();A *b = NULL;a->f1(); // oka->f2(); / 阅读全文

posted @ 2011-03-11 10:36 宁静的水泡 阅读(197) 评论(0) 推荐(0) 编辑

atexit
摘要:#include #include void bye() { printf("byte\n"); } void goodbyte() { printf("good byte\n"); } int main(int argc, char *argv[]) { atexit(bye); //bye will be called after exit atex... 阅读全文

posted @ 2011-02-11 21:51 宁静的水泡 阅读(143) 评论(0) 推荐(0) 编辑

echoall
摘要:#include int main(int argc, char *argv[]) { int i; extern char **environ; for(i = 0; i < argc; i++) { printf("argv[%d]: %s\n", i, argv[i]); } /*argv[argc] is NU... 阅读全文

posted @ 2011-02-11 21:51 宁静的水泡 阅读(255) 评论(0) 推荐(0) 编辑

setjmp, longjmp
摘要:#include #include #include static void f1(int, int, int); static void f2(void); static jmp_buf jmpbuffer; int main(int argc, char *argv[]) { int count; /*the value is on stack, it will be ... 阅读全文

posted @ 2011-02-11 21:49 宁静的水泡 阅读(235) 评论(0) 推荐(0) 编辑

Unix编程-列出目录下文件列表
摘要:代码 阅读全文

posted @ 2010-12-23 23:30 宁静的水泡 阅读(256) 评论(0) 推荐(0) 编辑

Java与C++的区别之构造函数中的多态
摘要:我们有个一个类A,在构造函数中调用自己的方法f。现在有一个类B,继承A,并覆盖了方法f。那么构造函数B调用时先执行A的构造函数,此时在A的构造函数中的f是指A::f, 还是B::f呢?在C++中,对于函数调用的多态主要是通过虚表实现,在构造函数完成前,虚表未实现,所以此时不会有多态特性,故调用的仍然是A::f。但是在Java中表现则不是的,会调用到子类的方法,即B::f。在这一点上,C++的表现应... 阅读全文

posted @ 2010-12-02 10:22 宁静的水泡 阅读(2041) 评论(0) 推荐(0) 编辑

数组的地址
摘要:今日小纸条:int a[3];a表示数组的地址,a与指针不同,a是数组的启示地址,而不是一个指针变量比如,int *b = a; //oka = b; //error, 不能改变数组的启示地址。另外,对数组名称取址得到的也是数组启示地址,所以下面3个值是相等的。a == &a == &a[0] 阅读全文

posted @ 2010-11-08 13:20 宁静的水泡 阅读(421) 评论(0) 推荐(0) 编辑

Uinix 文件I / O
摘要:Unix文件I/O大多数UNIX文件I/O只需用到5个函数:open、read、write、lseek以及close,经常被称之为不带缓存的I/O(unbufferedI/O,与标准I/O函数相对照)。术语——不带缓存指的是每个read和write都调用内核中的一个系统调用。这些不带缓存的I/O函数不是ANSIC的组成部分,但是是POSIX.1和XPG3的组成部分。只要涉及... 阅读全文

posted @ 2010-11-04 01:10 宁静的水泡 阅读(1698) 评论(0) 推荐(0) 编辑

about EOF
摘要:请参考http://www.cnitblog.com/guopingleee/archive/2009/01/29/54047.htmlEOF(End Of File)在 C 语言中,它是在标准库中定义的一个宏,被定义为是 int 类型的一个负数(比如 -1)。EOF 不是从文件中读取的一个字符,也不是文件中实际存在的内容。EOF 也不是只表示读文件到了结尾这一状态(这种状态可以用 feof() ... 阅读全文

posted @ 2010-11-04 00:39 宁静的水泡 阅读(392) 评论(0) 推荐(0) 编辑

Unix基本系统数据类型
摘要:历史上,某些UNIX变量已与某些C数据类型联系在一起,例如,历史上主、次设备号存放在一个1 6位的短整型中, 8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值来表示其设备号,于是,就需要有一种不同的技术。(确实, SVR4用32位表示设备号:14位用于主设备号,18位用于次设备号。)头文件<sys/types.h >中定义了某些与实现有关的数据类型,它们... 阅读全文

posted @ 2010-11-03 22:58 宁静的水泡 阅读(937) 评论(0) 推荐(1) 编辑

char 与 unsigned char的本质区别
摘要:在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无... 阅读全文

posted @ 2010-09-27 11:00 宁静的水泡 阅读(224826) 评论(9) 推荐(16) 编辑

auto_ptr浅析
摘要:auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针)auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。std::auto_ptr<ClassA> pa(new ClassA);下面主要分析一下auto_pt... 阅读全文

posted @ 2010-06-28 11:02 宁静的水泡 阅读(19103) 评论(3) 推荐(4) 编辑

C++中的虚函数(virtual function)
摘要:http://www.programfan.com/article/2782.html (加入日期:2005-5-2) 【收藏文章】【对此文发表评论】【保存文章至硬盘】【打印文章】【字体:大 中 小】 - 1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual ... 阅读全文

posted @ 2010-05-27 23:26 宁静的水泡 阅读(223) 评论(0) 推荐(0) 编辑

C程序的存储空间布局
摘要:1,正文段。这是由C P U执行的机器指令部分。通常,正文段是可共享的,所以即使执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外事故而修改其自身的指令。 2,初始化数据段.通常将此段称为数据段,它包含了程序中需赋初值的变量。例如, C程序中任何函数之外的说明:int maxcount = 99;使此变量以初值存放... 阅读全文

posted @ 2010-05-27 09:37 宁静的水泡 阅读(314) 评论(0) 推荐(0) 编辑

左值lvalue , rvalue
摘要:Definition: C and C++ have the notion of lvalues and rvalues associated with variables and constants. The rvalue is the data value of the variable, that is, what information it contains. The "r" in rv... 阅读全文

posted @ 2010-05-26 22:46 宁静的水泡 阅读(247) 评论(0) 推荐(0) 编辑

gdb常用命令 收藏
摘要:转:http://blog.csdn.net/gnuhpc/archive/2009/07/21/4368831.aspx调用gdb编译需要在cc后面加 -g参数再加-o; [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func(... 阅读全文

posted @ 2010-05-25 22:55 宁静的水泡 阅读(690) 评论(0) 推荐(0) 编辑

GCC编程四个过程:预处理-编译-汇编-链接
摘要:源地址:http://hi.baidu.com/hp_roc/blog/item/91691146c40de946500ffe39.html 2009年12月09日 星期三 13:14 在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序。 一、GCC快速入门Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]其中,目标文件可缺省,Gcc默认... 阅读全文

posted @ 2010-05-25 22:39 宁静的水泡 阅读(18595) 评论(2) 推荐(4) 编辑

C中的struct定义与C++中的struct区别
摘要:在C语言中,我们经常可以看到类似以下的定义: typedef struct String{ struct String *next; char *str;}String, *StringList; 在CPP中,只需要写成: typedef struct String{ String *next; char *str; }*StringList; 这是因为在C语言中, struct数据类型必... 阅读全文

posted @ 2010-05-25 19:10 宁静的水泡 阅读(2992) 评论(0) 推荐(0) 编辑

导航

Test Rooter HTML Code