C++笔记(完美版)适合初学者

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++笔记(day02)2007-3-231、%ldd可行文件的名字;---可查看连接库2、C++严格区分大小写,变量命名只能使用字母,数字,或下划线,第一个字母必须使用字母或下划线3、float单精度,double双精度sizeof(int)---返回int在内存中占的大小size(bool)=1size(char)=1size(short)=2size(int)=4size(long)=4size(float)=4size(double)=8无符号的数据一旦溢出,将成为0。有符号的int最大值2147483647,益处变为最小值,负数4、不同数据间赋值:有兼容性的,占空间小的数据类型,可以给占空间大的数据类型赋值不兼容的,可能会造成数据丢失。int-float可以转换;float-int小数部分丢失5、运算符要求数据类型要相同i++先用后加++i先加后用布尔运算符号:结果真或假逻辑运算符:做bool运算!(1)“与”运算&&,两条件要同时成立(2)“或”运算||,只要有一个条件是真,就成立6、按位与“&”有0则与的结果为0按位或“|”有1则或的结果为1按位异或“^”两位不同则为1,相同为07、左移“左移1相当于乘以2右移“右移1相当于除以28、三目运算符条件?真:假9、返回变量---表达式可以再次赋值,赋值语句返回变量本身eg:(a=10)=20返回变量的值---不可再次赋值eg:(a+5)=10左值:变量、赋值表达式,++i的返回值是左值右值:不能放在“=”左边的是右值,i++的返回值是右值常量要在声明时就赋值,并且不能修改10、流程控制while(条件){循环体}条件成立,则进入循环,知道条件为假时,退出循环(1)声明循环变量(2)while()确定循环条件(3)循环变量要有所变化,避免形成死循环for(变量初始化;条件;变量的变化){循环体代码}开始时判断循环条件是否成立,循环结束后,到第三个条件,使用变量改变do{循环体}while(条件);先执行一次,再判断条件,选择是否继续执行循环break;跳出循环,执行循环之外的下一条语句continue;从次处开始,结束本次循环,进行下一次循环11、课堂练习---求1到100之间的所有素数C++笔记(day03)2007-03-261、cin输入流一旦破坏,就不能恢复2、函数:一段相关代码组成的集合,以便完成一个特定的目的。(1)可以通过名字来使用,曾强了代码的可重用性。(2)提高可维护性。3、函数定义=声明+函数体:返回类型函数名(参数表...){return...}函数返回值:只有在调用函数的同时才能保存返回值函数定义时,小括号里的参数称为形参,在函数被调用的时候才有意义。函数调用时,小括号里的被传入的参数称为实参。4、函数在调用之前只有声明就可以,因为在编译阶段,参照声明可以完成语法上的检测。函数声明返回类型函数名(参数表...);声明与定义的分离,实现并行开发!5、全局变量,局部变量局部变量:函数内部声明的变量,只能在它声明的函数内部使用。如果没有对其初始化就使用,则其值为垃圾数字。全局变量:能被所有的函数共同使用,要声明在所有函数(包括main函数)之外。尽量少使用,影响太大。如果没有对其初始化就使用,系统默认为其初始化为0。6、数据区:只存放全局数据,数据区的数据是稳定的,程序启动时,即创建,程序结束时,才消失堆区代码区栈区:存储局部变量。插入数据从栈顶插入,先进后出结构。如果函数不调用的话,局部变量是不存在的在main函数与其他函数之间有个标记,一旦函数返回,栈顶下落到标记处栈中的数据是变化频繁的函数调用时创建,函数返回即消失7、值传递函数调用并不是传递实参本身,而是创建一个临时变量传到函数中(1)为形参创建一个临时变量,临时变量的值是拷贝实参的值(2)对形参的使用,实际上是对临时变量的使用,不会改变实参的大小8、默认参数(1)area(floata,floatb=10);当只传递一个参数时,形参b的位置默认为10(2)有默认值的形参靠右摆放9、内联函数声明时加“inline”,运行效率高,不支持结构控制语句,必须先定义,不支持函数原形。10、递归函数在函数内部自己调用自己。必须有明确的返回条件----递归的出口11、函数重载(1)函数名相同。(2)参数表不同(参数个数不同,参数类型不同,参数顺序不同)。(3)与参数名和返回类型不关调用时会根据参数表匹配自动调用相应的函数编译之后,函数的名字都会发生改变,后面会加上形参缩写作为后缀,没有任何函数的名字是一样的不会做自动类型提升对重载的函数最好不使用参数默认值12、const在函数内部不允许修改此形参13、需求分析、设计、代码实现多文件示例:=========================================chang.h=========================================charchange(char);=========================================chang_impl.cc=========================================charchange(charc){if(c=97&&c=122){returnc-32;}elseif(c=65&&c=90){returnc+32;}else{returnc;}}=========================================main.cc=========================================#includeiostream#includechange.husingnamespacestd;intmain(){charc='0';while(1){coutenterachar[0exit];cinc;if(c=='0'){break;}cout====change(c)endl;}return0;}===========================================14、外部变量和内部变量外部变量:externintg;----声明外部变量,引入一个变量,在别的源程序中声明内部变量:在源文件中声明的变量外部变量肯定是一个全局变量!作用域生命周期存储位置全局变量(外部变量)所有函数程序启动-程序结束数据区Data局部变量函数内部函数开始调用-函数返回栈Stack静态局部函数中第一次调用函数时(只被初始化一次)-程序结束数据区---只需要一份数据,并且不希望别的函数访问他静态全局本源文件中程序开始-程序结束数据区作业:实现银行业务=========a.cc==================longid;intpassword;doublebalance;long(id)create(balance,password);//创建账户voidsave(sum);int(staus0,-1)withdraw(sum,password);floatquery();===================================generatorId();//得到唯一的ID号intshowMenu();//现实主菜单saveMenu();//收集开户信息,然后调用创建账户createMenu();withdrawMenu();queryMenu();===================================***今日重点:(1)形参和实参的区别(2)递归(3)函数重载练习:观察费波拉切数列1,1,2,3,5,8,13,21,34......第一项和第二项都是1,后面的每一项是前面相邻两项的和。使用递归方法计算第n项的费波拉切数列结果。C++笔记2007-03-271、程序由函数组成,函数只完成自己特定的功能即可把函数声明写在头文件里(想使用函数时,可直接导入头文件,调用函数),把函数实现写在.cc文件中把多个.cc文件编译成可执行文件-分别编译成.o文件,再连接到一起2、值传递函数中的参数传递是值传递,形参只是实参的一份拷贝数据,在函数中改变形参的值,对实参无影响3、作业分析:显示层(与用户的交互)操作数据(完成业务逻辑)biz层数据(id,password,balance)Bank实现代码================================================================biz.cc================================================================//operation/*p:Passwordofaccount.*b:balanceofaccount.*return:idofaccount.*/longcreate(intp,doubleb);voidsave(doublesum);/**return:0success,otherwise-1returned.*/intwithdraw(intp,doublesum);doublequery(intp);longgenerateId();================================================================biz.cc================================================================staticlongid;staticintpasswd;staticdoublebalance;#includeiostreamusingnamespacestd;longgenerateId(){staticintid=1;returnid++;}longcreate(intp,doubleb){id=generateId();passwd=p;balance=b;returnid;}voidsave(doublesum){balance+=sum;}intwithdraw(intp,doublesum){if(p!=passwd){coutinvalidpassword.endl;return-1;}if(balance(sum+10)){coutnoenoughmoney.endl;return-1;}balance-=sum;return0;}doublequery(intp){if(p!=passwd){coutinvalidpasswordendl;return-1;}else{returnbalance;}}================================================================menu.h================================================================intshowMenu();voidcreateMenu();voidsaveMenu();voidwithdrawMenu();voidqueryMenu();================================================================menu.cc================================================================#includebiz.h#includeiostreamusingnamespacestd;intshowMenu(){coutcreate------1endl;coutsave------2endl;coutwithdraw----3endl;coutquery----

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功