c/c++
文章平均质量分 80
snowseabye
这个作者很懒,什么都没留下…
展开
-
由浅入深-string
一:基本使用 --1 string定义和初始化 string s1; //调用默认构造函数,初始化为空 string s1(s2); string s1("hello"); string s1(n,'a'); //n个a --2 string读写 cin>>s1; getline(cin,s1); --3 string对象操作原创 2011-11-03 20:34:43 · 477 阅读 · 0 评论 -
make工具及makefile规则 |from document
1 makefile规则 makefile是一个make的规则描述脚本文件,包括四种类型行:目标行、命令行、宏定义行和make伪指令行(如“include”)。makefile文件中注释以“#”开头。当一行写不下时,可以用续行符“\”转入下一行。 1.1 目标行 目标行告诉make建立什么。它由一个目标名表后面跟冒号“:”,再跟一个依赖性表组成。 例: example: d转载 2011-11-06 17:50:08 · 631 阅读 · 0 评论 -
C 语言中的指针和内存泄漏 | from web
转载自:http://www.ibm.com/developerworks/cn/aix/library/au-toughgame/ 1 未初始化的内存 在本例中,p 已被分配了 10 个字节。这 10 个字节可能包含垃圾数据,如图 1 所示。 char *p = malloc ( 10 ); 图 1. 垃圾数据 如果在对这个转载 2011-11-06 16:39:31 · 451 阅读 · 0 评论 -
union 和 struct | from web
union : 一次只有一个数据生效;分配内存(sizeof)为里面所有数据最大字节数; struct: 所有数据同时生效;分配内存(sizeof)应该内部最大数据类型的整数倍,不足一倍的部分会自动补全成一倍大小; 如: union U1{ char c; int i; double d; }; struct s1{ char c;转载 2011-11-05 22:59:36 · 329 阅读 · 0 评论 -
C语言编译过程总结详 | from web
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其转载 2011-11-07 22:25:02 · 574 阅读 · 0 评论 -
位运算 - 判断一个数是否为2的n次方 | 求一个数位为1的个数
判断一个数是否为2的n次方 n&&!(n&n-1) 说明:n>0且!(0) 若n为2的n次方,如100,则n-1为011;n&(n-1)总为0; 求一个数位为1的个数 int i=9999,count=0; while(i) { cout i=i&(i-1); count++; }转载 2011-11-08 17:07:34 · 1401 阅读 · 0 评论 -
常用链表排序算法
转载自:http://blog.csdn.net/northplayboy/article/details/552388 ========================== 功能:选择排序(由小到大) 返回:指向链表表头的指针 ========================== */ /* 选择排序的基本思想就是反复从还未排好序的那些节点中, 选出键值(就是转载 2011-11-08 17:20:31 · 17127 阅读 · 1 评论 -
C语言之#define用法 | from web
转载自:http://apps.hi.baidu.com/share/detail/9052699 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言转载 2011-11-10 19:27:42 · 860 阅读 · 1 评论 -
常见指针分配问题
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- void GetMemory(char *p) {转载 2011-11-11 11:43:01 · 479 阅读 · 0 评论 -
引用和指针的区别 | summary from web
一:概念说明 指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。 二:函数参数传递使用 在C++中,指针和引用经常用于函数的参数转载 2011-11-14 16:07:22 · 750 阅读 · 0 评论 -
你不知道的inline|from web
转载自:http://www.baidu.com/s?wd=inline&opt-webpage=on&ie=gbk 一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var转载 2011-11-14 15:57:44 · 807 阅读 · 1 评论 -
链表常用操作 (定义,创建,反转,合并,交叉)
struct Node{ int data; Node *next; }; //头插入法 Node* _link_create_head() { cout Node *head=NULL; Node *p; for(int i=0;i { p=(Node*)malloc(sizeof(Node*)原创 2011-11-13 20:36:21 · 539 阅读 · 0 评论 -
c字符串函数原型 | from web 待
memset strcpy strcat strcmp strlen strstr itoa atoi /* *原型:extern void *memset(void *buffer, int c, int count); *用法:#include *功能:把buffer所指内存区域的前count个字节设置成字符c。 *说明:返回指向buffer转载 2011-11-06 16:33:26 · 1176 阅读 · 0 评论 -
sizeof 和 strlen (32位.64位)
64位对比32位,最主要的区别就是long和指针的字节变成8了;及其size_t等定义类型也为8字节; 还有一些像类会涉及对齐方式不同,所以也不太相同,有机会对64位深入了解后在做详解.. 说明点点,下面运行结果是在codeblocks上面的结果,gnu-gcc-编译器; 也有资料说struct类型,是有对其方式的,不是简单的定义的字节相加.. 有机会在做学习,或者看到这篇文章的高手原创 2011-11-03 20:43:18 · 2107 阅读 · 0 评论 -
malloc calloc realloc |summary
----summary from c语言开发技术详解 0 头文件: stdlib.h,c中有malloc.h 1 分配内存函数 malloc -- calloc -- realloc void* malloc(size_t size) void* calloc(size_t count,size_t size) void *realloc(void *ptr,size_t ne原创 2011-11-05 11:44:37 · 389 阅读 · 0 评论 -
由浅入深-顺序容器(vector deque list)
deque list)" alt="由浅入深-顺序容器(vector deque list)" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6764EN00SIGG.gif" type="face">1 初始化 //元素类型要求,必须能复制和复制;如输入输出流和引用不可以 vector v1;//空 v原创 2011-11-03 20:37:14 · 678 阅读 · 0 评论 -
编程:阿拉伯数字转为钱数@递归方法(如123,转为一百二十三)
//说明:主要是递归和static的使用,9位数以内(包含9位数)的转换 //时间问题,细节没有全部考虑,比如输入大于9位数的返回就不对,异常问题,主要思想这样,mark一下,以后改进 string _change(const long lmoney); void main() { long lmoney=123456789; cout } string _ch原创 2011-11-03 20:44:11 · 724 阅读 · 0 评论 -
由浅入深-友元成员/成员函数
现在还是浅阶段,有机会希望进入深阶段,呵呵... 有些概念要去理解,动手尝试,然后在理解,在以后的运用中不断的学习加深... friend主要是,让外部函数,其他类或者类中的成员函数访问该类的私有成员或者成员函数.. 废话少说,简单说几个使用.. 1 友元类 -- 友元函数 ------------------------类定义-----------------------原创 2011-11-03 20:32:34 · 403 阅读 · 0 评论 -
float类型,bool类型的比较
1 float 和 0 比较 if(x-0.000001) //因为float是6位精度的,double是10位,long double 也是10位 这也是一些大众的答案,但是还是有些疑问,没办法,我菜..苦于没找到相关的说明.. 做了下面的例子,没找到对应的结果,猜测一下,或者是比较中有类型的转换,但是第一个if和第二个if分别包含的转换前和转换后,为啥都没打印呢.. f原创 2011-11-03 20:39:06 · 1189 阅读 · 0 评论 -
指针扫盲--复杂指针解析
其实也就笔试的时候遇到过让解释复杂指针,平时到也没太这样用过; 在网上搜了一些资料,大体解释都相同,应该都是出自一个人或者一本书一手吧; 我身边广为流传是megaboy同学的指针扫盲,学习; 记录下,基本例子是摘自指针扫盲第八章附加自己的理解; 指针是c的核心,希望自己以后能有自己的见解... 首先介绍一个概念,[左右法则].. 右左法则:首先从最里面的圆括号看起,然后往右看,再原创 2011-11-03 20:41:14 · 453 阅读 · 0 评论 -
堆栈 | from 百科
1.申请方式 stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 heap: 需要程序员自己申请,并指明大小,在c中malloc函数 如p1 = (char *)malloc(10); 在C++中用new运算符 如p2 = new char[20];//(char *)ma转载 2011-11-05 11:23:51 · 456 阅读 · 0 评论 -
由浅入深-static-变量存储
先说说static成员函数,c++primer和网上相关资料描述的并不多;没感受到实际的好处,待了解 主要集中表明三点: 1 static是类的而不是任何对象的组成部分,所有没有this指针 2 不能被声明为const,const表示不会修改函数所属的对象,因为不是对象的组成部分,so..you know 3 不能被声明为虚函数 4 static成员函数只能使用static成员变量原创 2011-11-05 11:20:29 · 470 阅读 · 0 评论 -
new 和 malloc | from web
new与malloc 1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存 2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构转载 2011-11-05 11:37:22 · 339 阅读 · 0 评论 -
编程:冒泡,选择,归并,快速
排序的方式太多了,先重点掌握几个,其余有机会慢慢学习!! 一:概念知识点介绍 1)时间复杂度 一般用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示; 如: for(int i=0;i!=m;i++) { for(j=0;j!=n;j++) } 在这个双重循环中,第二个for循环是最深层循环,执行频度为m*n,因为时间复杂度为O(m*n); 常用时间复杂度原创 2011-11-03 20:47:33 · 400 阅读 · 0 评论 -
由浅入深-虚函数,纯虚函数,虚继承
summary -- 主要简单使用,原理及其复杂实现暂不包含,日后继续学习~~ 1 虚函数 class Base{ public: virtual void fun(){cout<<"base"<<endl;} }; class Child1 : public Base{ public: void fun(){cout<<"child"<<en原创 2011-11-05 22:35:08 · 436 阅读 · 0 评论 -
public private protected | from web
---简单记录 在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数和友元访问。 在类的protected: 节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数,友元以及子类的成员函数和友元访问。 在类的public:节中声明的成员(无论数据成员或是成员函数)能被任何人访问。 公有继承时,基类的公有成员,变为派生类的公有成转载 2011-11-06 14:47:28 · 360 阅读 · 0 评论 -
动态调用动态库方法 | from web
转载自:http://blog.sina.com.cn/s/blog_6294abe70100s66x.html 关于动态调用动态库方法说明 一、 动态库概述 1、 动态库的概念 日常编程中,常有一些函数不需要进行编译或者可以在多个文件中使用(如数据库输入/输出操作或屏幕控制等标准任务函数)。可以事先对这些函数进行编译,然后将它们放置在一些特殊的目标代码文件中,转载 2011-11-10 21:01:59 · 1581 阅读 · 0 评论