C和C++经验总结.doc
文本预览下载声明
C和C++语言学习总结(资料来自 高质量C++/C 编程指南 林锐博士 2001 年7 月24) 知识结构: 1、if,for,switch,goto 2、#define,const 3、文件拷贝的代码,动态生成内存,复合表达式,strcpy,memcpy,sizeof 4、函数参数传递,内存分配方式,内存错误表现,malloc与new区别 5、类重载、隐藏与覆盖区别,extern问题,函数参数的缺省值问题,宏代码与内联函数区别 6、构造和析构的次序,String函数定义 具体实现: 1、if,for,switch,goto if: bool int float pointer char 变量的使用方法 bool? bParam; int? iParam; float fParam; int*? pParam; char? cParam; if(bParam) ,if(!bParam); if(iParam == 0 ),if(iParam != 0 ); if(fParam= -0.00001 fParam = 0.00001); if(pParam == NULL),if(pParam != NULL); if(cParam == \0),if(cParam != \0); if/else/return 的使用方法 if(condition)? ? 可以等价为? return (condition?x:y); { ? return x; } else { ? return y; } for: 执行效率问题: int row,col,sum; int a[100][5]; for(row=0;row 100;row++)? ? ? 效率低于? ? for(col=0;col 5;col++) {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? for(col=0;col 5;col++)? ? ? ? ? ? ? ? ? ? for(row=0;row 100;row++) ? {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? sum = sum+a[row][col];? ? ? ? ? ? ? ? ? ? sum = sum+a[row][col]; ? }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } int i; for(i=0;i N;i++)? ? ? ? ? ? 效率低于? ? if(condition) {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? if(condition)? ? ? ? ? ? ? ? ? ? ? ? ? ? for(i=0;i N;i++)? ? ? ? DoSomething();? ? ? ? ? ? ? ? ? ? ? ? ? ? DoSomething(); ? ? else? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? DoOtherthing();? ? ? ? ? ? ? ? ? ? else }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for(i=0;i N;i++)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DoOtherthing(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } for (int x=0;x =N-1;x++)? 直观性差于? ? for (int x=0;x N;x++) switch: switch(variable) { ? ? case value1: ... ? ? ? ? ? ? ? ? break; ? ? case value2: ... ? ? ? ? ? ? ? ? break; ? ? default:? ? ... ? ? ? ? ? ? ? ? break; } switch(c)中的c的数据类型可以是int,char,long,unsigned int,bool. variable必须是整数或者强制为整数,由于char实际上是ASCII码,所以也可以. c
显示全部