版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品编程入门基础知识总结基本知识程序= 算法+ 数据结构,算法是对操作的描述,数据结构是对数据的描述。伪代码: pseudo code程序一般包括:( 1 )预处理命令: #include 等( 2 )全局声明部分(3 )函数:函数首部(声明)、函数体(局部声明+ 执行部分)程序执行过程源程序 -> 编译成目标程序obj->连接目标程序成可执行文件类:数据成员 + 成员函数命名空间实际上就是一个由程序设计者命名的内存区域。程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开,解决名字冲突,防止全局命名空间污染。C+ 库的所有标识符
2、(标准头文件中函数、类、对象、类模版)都是在std命名空间定义的A 的 ASCII 码值 65a 的 971.数据类型? 基本类型:整型、浮点型、字符型、布尔型? 构造类型:枚举、数组、结构体类型(struct )、公用体(union )、类类型? 指针类型感谢下载载精品? 引用类型? 空类型: nullint4unsignedint4shortint2unsignedshort int 2long int 4unsigned long int 4char 1uchar 1float 4double 8long double 8无符号:不用保存符号位,故比有符号多了一位有符号:数值用补码存放(
3、无论正负 ),最高位为符号位VC 中, long double与 double字节数相同,故long double是无用的GCC 中, long double则有 12 个字节无负值的量可以定义为unsigned int,如年龄、学号等,以增大存储范围。short int, long int,unsigned int这些类型后面的int 可以省略整型表示:十进制,后面加L 或 l八进制,前面加0十六进制,前面加0x浮点数表示:默认为双精度型double后面加f 或 F 则为单精度float后面加l 或 L 则为长精度型long double指数形式数符数字部分指数部分感谢下载载精品a = 3.
4、14e2a=0.314e4a=31.4e1a=3140e-1浮点数, 不管是用小数形式还是指数形式表示,在内存中都是以指数形式表示的,且数字部分必须小于1如 3.14159在内存中表示为+.3141593 ,数字部分为 .314159 ,是小于1 的字符型字符型在内存中存储的是ASCII 码,也是整型,故而可以把字符型赋给整型字符串后面,编译系统会加个'0' 作为结束符符号常量用符号代表一个常量,如#definePI3.14159在编译时,系统会把符号常量替换成具体的值2.变量变量:程序运行期间,值可变的量变量名:代表内存中的一个存储单元,在编译连接时由系统给每一个变量分配一个
5、地址标识符:标识实体名字的有效字符序列,字母、数字、下划线常变量:定义变量时加上const ,运行期间值不可变,也即只读变量区别 #define定义的符号常量与const定义的常变量符号常量只是用一个符号代表一个常量,在编译时把所有符号常量替换为指定的值,它没有类型,在内存中不存在以符号常量命名的存储单元常变量具有变量的特征,具有类型, 在内存中有以它命名的存储单元,与一般变量不同的是,常变量代表的存储单元值不可变。感谢下载载精品强定义的好处1.保证变量名使用的正确,不正确会在编译时报错2.每个变量指定为一确定类型,在编译时就能为其分配存储单元3.编译时即可检查变量进行的运算是否合法。3. 运
6、算符二进制位运算& 二进制 按位与|二进制按位或 按位异或<< 左移位>> 右移位+ - 自加自减运算符+i使用 i 之前, i 先自加i+使用 i 之后, i 再自加+ - 结合方向为自右向左例:!x+先取非,再 +感谢下载载精品(i+)+6先 i+6, 后 i+ ,不管有无括号,都是先运算,再自加(+i)+6先自加,再加6-i+: i 左面是符号运算符,右面是自加运算符,设i 等于 3,运算过程相当于-(i+),即 -i=-3-3+1=-2a = -i+:a 结果为 -3 ,先赋值,再自加;5-i+ =?答案 2?待测试i=1,j=2,则 a = i+j?答
7、案: 3 因为相当于a=(i+)+j;i=1,j=2,则 a=i+(+j)?答案: 4赋值运算符 = 的优先级小于+ -运算符示例:int arr = 6,7,8,9,10;sint *ptr = arr;*(ptr+) += 123;printf("%d,%d",*ptr,*(+ptr);解:*(ptr+) += 123;相当于*ptr +=123;*ptr+;故 arr0 = 129; ptr指向 arr1printf函数从右向左压栈,运算顺序:+ptr;输出结果:8 8感谢下载载精品cout也是自右向左压栈。逗号运算符又称顺序求值运算符a = 3*4,a*5则a=?答
8、案12?注意逗号运算符优先级最低。注:整个逗号表达式的值为 60 ( a=3*4=12, 12*5 =60)x=(a=3,6*3)则 x=18x=a=3,6*a则 x=33.内存存储浮点数在内存里和整数存储方式不同float a =1.0f;cout<<(int)a=(int&a);(int&a)相当于把该浮点数地址开始的sizeof(int)个字节当成int 型数据输出,其值并不为感谢下载载精品1(int)a显示转换等于14.类型转换转换本质:按存储单元中的存储形式直接传送( 1 )浮点型赋给整型,舍弃小数部分( 2 )double 型赋给 float ,防止溢出
9、错误( 3 )int , short , long 赋给 char ,原封不动取低八位(4 )signed赋给 unsigned,符号位照搬。负数以补码形式存放,-1 赋给 unsigned int,结果为 65536. 整数不会变,除非两个长度不同(int , long )发生截断感谢下载载精品5.C+ 输入输出C+ 输入输出包含三个方面的内容( 1 )对系统指定的标准设备的输入输出。即从键盘输入、输出到显示器屏幕,称标准输入输出,简称标准 I/O( 2 )以外出磁盘文件为对象进行输入输出,称文件I/O( 3 )对内存中指定空间进行输入输出,通常指定一个字符数组作为存储空间,称字符串输入输出
10、,简称串 I/O在 C+ 中,输入输出流被定义为类。 C+ 的 I/O 库中的类称为流类,用流类定义的对象称流对象。C+ 中输入输出是调用输入输出流库中的流对象cin 、 cout 实现的,即I/O 不是 C+ 本身定义的,而是编译系统的I/O 库中定义的。I/O 控制符 #include <iomanip>感谢下载载精品setprecision(n)设置精度为n ,十进制输出时,n 代表有效数字位数包括整数和小数;fixed (固定小数位数)和scientific(指数)形式输出时,n 指小数位数(不包括整数部分)double a = 123.4567890123456cout
11、<< a;/ 十进制输出,输出123.456默认精度为6cout<<setprecision(9)<<a;/ 十进制,输出123.456789精度为 9cout<<setprecision(6);/ 恢复默认精度cout<<setioflags(iOS:fixed)<<a;/ 固定位数, 123.456789,此时精度表示小数位数,精度为默认的66.getchar()和 putchar()感谢下载载精品cout<<getchar();/ 读入的实际是ASCII 码,故输出为字符ASCII 码, 97 ,而非读入
12、的字符cout<<(c=getchar();/ 输出为字符while(c=getchar()!='n')/ 循环读入字符的控制7.函数与模版函数原型:不同具体形参的函数声明如: float add(float,float)主要作用:根据函数原型,在程序编译阶段对调用函数的合法性进行全面检查。感谢下载载精品函数重载: 同一函数名定义的多个函数,这些函数的参数个数,参数类型,参数顺序至少有一项不同,一个函数不能既是重载函数,又是带默认参数的函数。函数模版:适用于函数个数相同,函数体相同,而只有类型不同的情况cpp view plain copy01.#include &
13、lt;iostream>02.using namespace std;03.template <typename T> / template <class T>04.T max(T a, T b, T c)05.06.if(b>a)a = b;07.if(c>a)a = c;8. return a;09.10.int main()11.12. int a=1,b=2,c=3;13. cout<<T(a,b,c);感谢下载载精品14. float d=1.1,e=2.2,f=3.3;15. cout<< T(d,e,f);16.变
14、量作用域:变量有效范围,有四种:文件作用域file scope函数作用域function scope块作用域block scope函数原型作用域function prototype scope递归函数:函数体中,直接或间接调用函数本身的函数。变量的存储类别:外部、局部(相对于函数而言)全局变量(也即外部变量)静态局部变量(static )感谢下载载精品自动变量(不加static的局部变量)寄存器变量( register ) 存放在 CPU 中,而非内存中,这样在使用时就省去了从内存中载入寄存器的过程。但只是建议性的,优化编译系统自动识别使用频繁的变量,从而自动将变量放入寄存器中。extern声
15、明的外部变量即提前引用申明, 表示该变量是将在下面定义的全局变量或在其它文件中定义(本文件中不用 extern ,引用该变量的外部文件用extern进行声明)static 声明的静态外部变量只能被本文件使用,而不能被外部文件使用的全局变量,这样不同文件中的全局变量不会相互干扰,为程序模块化、通用化提供方便。注:全局变量也是静态存储的。内部函数与外部函数内部函数: static声明,文件内使用感谢下载载精品外部函数:另一个文件里extern声明,表示是其它文件的函数,extern可以省略宏定义#define PI 3.14定义符号常量#define Area(a,b)a*b/ 定义函数功能,下面
16、当作函数来用。#include <iostream>'iostream'区别<>在系统目录寻找,找不到报错' '在当前目录寻找,找不到报错字符数组(1) char str = "i am happy"感谢下载载精品数组长度为11 ,而非 10 ,因为后面有一个'0'(2) char str = 'i','a','m','h','y'数组长度为5 ,系统不会自动为其在后面加'0'因此, (1),(2) 是不同的
17、输出字符数组 :cout<<str;string类字符数组是C 中的处理方式,C+ 中用 string类, #include <string>字符串变量中不会存放'0' ,只存放字符串本身,故string str ="hello"的长度为5,要注意。字符串变量存储的实际是字符串的指针,4 个字节,sizeof(string) = 4;感谢下载载精品string name="i","am","happy"sizeof(name) = 3*4 = 12;变量与指针:int *p
18、= &i;/int型指针变量,定义时的* 只是表示指针类型p 是指针变量,其值是变量i 的地址, *p 则是存储单元,*&a与 *p 同,都表示变量a指向数组的指针int a10 = ;int *p;p = &a0;/ 与下面等价,都指向数组第一个元素,因为数组名本身就是表示数组的地址p = a;感谢下载载精品*p+相当于 *(p+),先得到 *p 的值, p 再 + 移到下一个元素(*p)+则是使 *p 的值 +1二维数组的指针表示:*(*(p+i)+j)表示ai,j*int (*p)np 为指向含n 个元素的数组的指针int *pn定义指针数组P函数指针指向函数的指
19、针,主要用作形参int max(int,int);感谢下载载精品int (*p)(int,int);p = max;赋值(地址)p(1,2)/ 调用引用int a = 10;int &b = a;b 是对 a 的引用引用传递,引用型变量作为函数形参cpp view plain copy感谢下载载精品01./ 值会改变02.main3. int i=5,j=6;4. swap(i,j)05.06.void swap(int &a, int &b)/ 这里的 & 不是“ a 的地址”,而是指“a 是一个引用型变量”, & 是个声明符07.8. int tem
20、p;9. temp = a;10. a= b;11. b=temp;12.传递变量地址:形参是指针变量,实参是变量地址,这种虚实结合的方法仍然是“值传递”方式,只是实参的值是变量地址而已。感谢下载载精品cpp view plain copy01./ 值会改变02.main()03.4. int i=5,j=6;5. swap(&i,&j)06.07.void swap(int *p1, int *p2)/ 这里的 *号也只表示是指针类型08.9. int temp;10. temp = *p1;11. *p1 = *p2;12. *p2 = temp;13.结构体变量struc
21、t感谢下载载精品作函数参数时有三种形式(1 )用结构体变量名作形参这时形参要开辟内存单元,实参中全部内容通过值传递方式一一传递给形参,时空开销大,效率低(2 )用指向结构体变量的指针作形参,只有四个字节void printed(student *p)cout<<p->num;(3 )用结构体变量的引用变量作形参Student stu;感谢下载载精品print(stu);void print(Student &stu)cout<stu.num;new delete动态内存分配new类型 (初值 ),返回地址,分配失败返回NULLfloat *f = new flo
22、at(3.14);int *i = new int(6);感谢下载载精品int *k = new int54;/ 数组delete变量delete f;delete i;数组delete k;Enum枚举类型声明枚举类型enum weekdaysun,mon,tue,wed,thu,fri,sat;定义枚举变量weekdayworkday,week_end;变量赋值:workday = mon;或workday = weekday(2);枚举常量对应值从0 开始, 0,1,2, 3.typedef声明新类型typedef intINTEGER,相当于为int 起了个别名,下面程序中就可以直接用
23、INTEGER作 int 用了主要为了方便系统移植,如 long int在 VC 中 4 个字节, 在 GCC 中占 8 个字节, 直接用 int的话可能会溢出,用INTEGER 就不用担心了,只要把ypedef intINTEGER声明语句一改就行运算符重载方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现响应运算。即运算符重载是通过定义函数实现的,运算符重载实际上是函数重载。感谢下载载精品格式:函数类型operator运算符名称(形参表列 )对运算符的重载处理例如:将+用于 Complex类(复数)的加法运算,函数原型如下:Complex operat
24、or + (Complex& c1, Complex& c2);注: operator是关键字,operator +就是函数名,可以描述为:函数 operator +重载了运算符 +整数加可以想象为调用如下函数int operator + (int a,int b) return a+b; cpp view plain copy感谢下载载精品01.#include <iostream>02.using namespace std;03.class Complex04.5. public:6. Complex()real=0;imag=0;7. Complex(double r, double r)real=r;imag=i;08.Complex operator + (Complex &c2);/ 声明重载运算符的函数9. void display();10. private:11. double rea;12. double imag;13.;14.Complex Complex:operator + (Complex &c2) /定义重载运算符的函数15.16. Complex c;17. c.real = real + c2.real;18. c.imag = imag + c2.imag;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川成都市新津区外国语实验小学校面向社会招聘教师18人备考题库附答案详解(轻巧夺冠)
- 2026福州鼓楼攀登信息科技有限公司招聘1人备考题库附答案详解(能力提升)
- 2026春季江西铜业集团建设有限公司校园招聘7人备考题库及参考答案详解(精练)
- 2026广东中山市绩东二社区见习生招聘备考题库带答案详解ab卷
- 脑卒中的康复训练
- 2026中兵节能环保集团有限公司招聘4人备考题库及参考答案详解ab卷
- 2026福建福州三中晋安校区招聘编外英语教师2人备考题库带答案详解(突破训练)
- 2026河北邢台学院高层次人才引进55人备考题库及答案详解(全优)
- 2026山西经济管理干部学院(山西经贸职业学院)招聘博士研究生5人备考题库及答案详解【新】
- 弘扬宪法精神争做守法小公民
- 2023年新高考河北卷政治高考真题解析(参考版)
- 《中国铁路总公司铁路建设项目档案管理办法》(铁总档史〔2018〕29号)
- 部编人教版四年级下册小学数学全册课时练(一课一练)
- 社区零星维修工程投标方案(技术标)
- 碳捕集、利用与封存技术
- 培训膜片ecs700系统概述新
- 【新高教版中职数学基础模块下册PPT】7.2旋转体
- 抑郁病诊断证明书
- 全国优质课一等奖小学四年级道德与法治下册《学会合理消费》(精品课件)
- 核磁共振上册氢谱
- GB/T 32299-2015航天项目风险管理
评论
0/150
提交评论