版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程入门基础知识总结基本知识程序 =算法+数据结构,算法是对操作的描述,数据结构是对数据的描述。感谢阅读伪代码:pseudocode程序一般包括:(1)预处理命令:#include等(2)全局声明部分(3)函数:函数首部(声明)、函数体(局部声明+执行部分)感谢阅读程序执行过程源程序-->编译成目标程序obj-—>连接目标程序成可执行文件感谢阅读类:数据成员+成员函数命名空间实际上就是一个由程序设计者命名的内存区域。程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开,解决名字冲突,防止全局命名空间污染。精品文档放心下载C++库的所有标识符(标准头文件中函数、类、对象、类模版)都是在std命名空间定义的感谢阅读A的ASCII码值65a的971.数据类型•基本类型:整型、浮点型、字符型、布尔型•构造类型:枚举、数组、结构体类型(struct)、公用体(union)、类类型谢谢阅读•指针类型•引用类型•空类型:nullint4 unsignedint4 shortint2 unsignedshortint2谢谢阅读longint4 unsignedlongint4精品文档放心下载char1
uchar1float4
double8
longdouble8无符号:不用保存符号位,故比有符号多了一位有符号:数值用补码存放(无论正负),最高位为符号位VC中,longdouble与double字节数相同,故longdouble是无用的感谢阅读GCC中,longdouble则有12个字节谢谢阅读无负值的量可以定义为unsignedint,如年龄、学号等,以增大存储范围。精品文档放心下载shortint,longint,unsignedint这些类型后面的int可以省略感谢阅读整型表示:十进制,后面加L或l八进制,前面加0十六进制,前面加0x浮点数表示:默认为双精度型double后面加f或F则为单精度float后面加l或L则为长精度型longdouble指数形式数符数字部分指数部分a=3.14e2a=0.314e4a=31。4e1a=3140e-1浮点数,不管是用小数形式还是指数形式表示,在内存中都是以指数形式表示的,且数字部分必须小于1精品文档放心下载如3.14159在内存中表示为 + 。3141593,数字部分为。314159,是小于1的谢谢阅读字符型字符型在内存中存储的是ASCII码,也是整型,故而可以把字符型赋给整型谢谢阅读字符串后面,编译系统会加个'\0’作为结束符符号常量用符号代表一个常量,如#define PI 3。14159谢谢阅读在编译时,系统会把符号常量替换成具体的值2。变量变量:程序运行期间,值可变的量变量名:代表内存中的一个存储单元,在编译连接时由系统给每一个变量分配一个地址感谢阅读标识符:标识实体名字的有效字符序列,字母、数字、下划线感谢阅读常变量:定义变量时加上const,运行期间值不可变,也即只读变量感谢阅读区别#define定义的符号常量与const定义的常变量感谢阅读符号常量只是用一个符号代表一个常量,在编译时把所有符号常量替换为指定的值,它没有类型,在内存中不存在以符号常量命名的存储单元感谢阅读常变量具有变量的特征,具有类型,在内存中有以它命名的存储单元,与一般变量不同的是,常变量代表的存储单元值不可变。谢谢阅读强定义的好处1.保证变量名使用的正确,不正确会在编译时报错2。每个变量指定为一确定类型,在编译时就能为其分配存储单元谢谢阅读3。编译时即可检查变量进行的运算是否合法。运算符二进制位运算二进制按位与|二进制按位或按位异或<〈左移位右移位-—自加自减运算符++i 使用i之前,i先自加i++ 使用i之后,i再自加——结合方向为自右向左例:!x++ 先取非,再++(i++)+6 先i+6,后i++,不管有无括号,都是先运算,再自加感谢阅读(++i)+6先自加,再加6—i++:i左面是符号运算符,右面是自加运算符,设i等于3,运算过程相当于-(i++),谢谢阅读—i=-3—3+1=—2=-i++:a结果为—3,先赋值,再自加;5-i++=? 答案2 ?待测试i=1,j=2,则a=i+++j? 答案:3因为相当于a=(i++)+j;感谢阅读i=1,j=2,则a=i+(++j)? 答案:4赋值运算符=的优先级小于++-—运算符示例:intarr[]={6,7,8,9,10};sint*ptr=arr;*(ptr++)+=123;printf("%d,%d”,*ptr,*(++ptr));精品文档放心下载解:*(ptr++)+=123;相当于*ptr+=123; *ptr++;故arr[0]=129;ptr指向arr[1]感谢阅读printf函数从右向左压栈,运算顺序:++ptr;输出结果:88精品文档放心下载cout也是自右向左压栈.逗号运算符又称顺序求值运算符a=3*4,a*5 则a=?答案12?注意逗号运算符优先级最低。注:整个逗号表达式的值精品文档放心下载60(a=3*4=12,12*5=60)x=(a=3,6*3) 则x=18x=a=3,6*a 则x=33.内存存储浮点数在内存里和整数存储方式不同floata=1。0f;cout〈<(int)a==(int&a);(int&a)相当于把该浮点数地址开始的sizeof(int)个字节当成int型数据输出,其值并不为1感谢阅读(int)a显示转换等于14。类型转换转换本质:按存储单元中的存储形式直接传送(1)浮点型赋给整型,舍弃小数部分(2)double型赋给float,防止溢出错误感谢阅读(3)int,short,long赋给char,原封不动取低八位谢谢阅读(4)signed赋给unsigned,符号位照搬。负数以补码形式存放,—1赋给unsignedint,结果为谢谢阅读65536.整数不会变,除非两个长度不同(int,long)发生截断精品文档放心下载5.C++输入输出C++输入输出包含三个方面的内容(1)对系统指定的标准设备的输入输出。即从键盘输入、输出到显示器屏幕,称标准输入输出,简称标准I/O感谢阅读(2)以外出磁盘文件为对象进行输入输出,称文件I/O感谢阅读(3)对内存中指定空间进行输入输出,通常指定一个字符数组作为存储空间,称字符串输入输出,简称串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指小数位数(不包括整数部分)感谢阅读doublea=123.4567890123456感谢阅读cout<〈a; //十进制输出,输出123。456 默认精度为6谢谢阅读cout<〈setprecision(9)<〈a; //十进制,输出123.456789 精度为9精品文档放心下载cout〈<setprecision(6); //恢复默认精度精品文档放心下载cout<〈setioflags(iOS::fixed)<<a; //固定位数,123。456789,此时精度表示小数位精品文档放心下载数,精度为默认的66.getchar()和putchar()cout〈<getchar(); //读入的实际是ASCII码,故输出为字符ASCII码,97,而非读入的字感谢阅读符cout〈〈(c=getchar()); //输出为字符谢谢阅读while((c=getchar())!=’\n’){} //循环读入字符的控制精品文档放心下载7.函数与模版函数原型:不同具体形参的函数声明如:floatadd(float,float)主要作用:根据函数原型,在程序编译阶段对调用函数的合法性进行全面检查。感谢阅读函数重载:同一函数名定义的多个函数,这些函数的参数个数,参数类型,参数顺序至少有一项不同,一个函数不能既是重载函数,又是带默认参数的函数.感谢阅读函数模版:适用于函数个数相同,函数体相同,而只有类型不同的情况感谢阅读[cpp]viewplaincopy01。#include〈iostream〉02.usingnamespacestd;03.template〈typenameT>//template〈classT〉精品文档放心下载04。Tmax(Ta,Tb,Tc)05。{06。if(b〉a)a=b;07。if(c>a)a=c;08。returna;09.}10。intmain()11。{12。 inta=1,b=2,c=3;13。 cout〈〈T(a,b,c);14。 floatd=1。1,e=2。2,f=3。3;精品文档放心下载cout〈<T(d,e,f);16.}变量作用域:变量有效范围,有四种:文件作用域
filescope
函数作用域
functionscope块作用域
blockscope
函数原型作用域
functionprototypescope递归函数:函数体中,直接或间接调用函数本身的函数。变量的存储类别:外部、局部(相对于函数而言)全局变量(也即外部变量)静态局部变量(static)自动变量(不加static的局部变量)寄存器变量(register)存放在CPU中,而非内存中,这样在使用时就省去了从内存中载入寄存器的过程.但只是建议性的,优化编译系统自动识别使用频繁的变量,从而自动将变量放入寄存器中。精品文档放心下载extern声明的外部变量即提前引用申明,表示该变量是将在下面定义的全局变量或在其它文件中定义(本文件中不精品文档放心下载用extern,引用该变量的外部文件用extern进行声明)感谢阅读static声明的静态外部变量只能被本文件使用,而不能被外部文件使用的全局变量,这样不同文件中的全局变量不会相互干扰,为程序模块化、通用化提供方便.感谢阅读注:全局变量也是静态存储的.内部函数与外部函数内部函数:static声明,文件内使用外部函数:另一个文件里extern声明,表示是其它文件的函数,extern可以省略谢谢阅读宏定义#definePI3.14
定义符号常量#defineArea(a,b)
a*b
//定义函数功能,下面当作函数来用。#include
〈iostream>
’iostream’区别〈>在系统目录寻找,找不到报错’'在当前目录寻找,找不到报错字符数组(1)charstr[]="iamhappy";精品文档放心下载数组长度为11,而非10,因为后面有一个’\0'感谢阅读(2)charstr[]={’i',’a','m’,’h’,'y’}感谢阅读数组长度为5,系统不会自动为其在后面加'\0’因此,(1),(2)是不同的输出字符数组:cout<<str;string类字符数组是C中的处理方式,C++中用string类,#include<string〉谢谢阅读字符串变量中不会存放’\0',只存放字符串本身,故stringstr=”hello";的长度为5,要注意.感谢阅读字符串变量存储的实际是字符串的指针,4个字节,sizeof(string)=4;stringname[]={"i",”am”,"happy"}; sizeof(name)=3*4=12;感谢阅读变量与指针:int*p=&i; //int型指针变量,定义时的*只是表示指针类型精品文档放心下载p是指针变量,其值是变量i的地址,*p则是存储单元,*&a与*p同,都表示变量a感谢阅读指向数组的指针inta[10]={};int*p;p=&a[0]; //与下面等价,都指向数组第一个元素,因为数组名本身就是表示数组的地址精品文档放心下载p=a;**************************p++相当于*(p++),先得到*p的值,p再++移到下一个元素精品文档放心下载(*p)++则是使*p的值+1二维数组的指针表示:*(*(p+i)+j) 表示a[i,j]感谢阅读*************************int(*p)[n] p为指向含n个元素的数组的指针精品文档放心下载int
*p[n]
定义指针数组P函数指针指向函数的指针,主要用作形参intmax(int,int);int(*p)(int,int);p=max;赋值(地址)p(1,2) //调用引用inta=10;int&b=a; b是对a的引用引用传递,引用型变量作为函数形参[cpp]viewplaincopy01。//值会改变02.main{03. inti=5,j=6;swap(i,j)05.}06.voidswap(int&a,int&b)//这里的&不是“a的地址”,而是指“a是一个引用型变量”,&是个声明符谢谢阅读07。{08。 inttemp;09。 temp=a;a=b;b=temp;12.}传递变量地址:形参是指针变量,实参是变量地址,这种虚实结合的方法仍然是“值传递”方式,只是实参的值是变量地址而已。感谢阅读[cpp]viewplaincopy01.//值会改变02.main()03.{04。 inti=5,j=6;swap(&i,&j)06。}07。voidswap(int*p1,int*p2) //这里的*号也只表示是指针类型感谢阅读08。{inttemp;10。 temp=*p1;*p1=*p2;12。 *p2=temp;13。}结构体变量struct作函数参数时有三种形式(1)用结构体变量名作形参这时形参要开辟内存单元,实参中全部内容通过值传递方式一一传递给形参,时空开销大,效率低精品文档放心下载(2)用指向结构体变量的指针作形参,只有四个字节voidprinted(student*p){cout〈<p-〉num;}(3)用结构体变量的引用变量作形参Studentstu;print(stu);voidprint(Student&stu){cout〈stu。num;}newdelete动态内存分配new类型(初值),返回地址,分配失败返回NULL谢谢阅读float*f=newfloat(3.14);精品文档放心下载int*i=newint(6);int*k=newint[5][4]; //数组精品文档放心下载delete
变量
deletef;
deletei;数组
delete
[]
k;Enum
枚举类型声明枚举类型 enumweekday{sun,mon,tue,wed,thu,fri,sat};精品文档放心下载定义枚举变量
weekday
workday,week_end;变量赋值:workday=mon;
或
workday=weekday(2);枚举常量对应值从0开始,0,1,2,3..typedef声明新类型typedefintINTEGER,相当于为int起了个别名,下面程序中就可以直接用INTEGER作int用了谢谢阅读主要为了方便系统移植,如longint在VC中4个字节,在GCC中占8个字节,直接用int的话可能会溢出,用INTEGER就不用担心了,只要把ypedefintINTEGER声明语句一改就行感谢阅读运算符重载方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现响应运算.即运算符重载是通过定义函数实现的,运算符重载实际上是函数重载。谢谢阅读格式:函数类型operator运算符名称(形参表列)感谢阅读{对运算符的重载处理}例如:将+用于Complex类(复数)的加法运算,函数原型如下:谢谢阅读Complexoperator+(Complex&c1,Complex&c2);谢谢阅读注:operator是关键字,operator+就是函数名,可以描述为:函数operator+重载了运算符+精品文档放心下载整数加可以想象为调用如下函数intoperator+(inta,intb)感谢阅读{returna+b;}[cpp]viewplaincopy01.#include<iostream>谢谢阅读02.usingnamespacestd;03.classComplex04.{05. public:06。 Complex(){real=0;imag=0;}感谢阅读07。 Complex(doubler,doubler){real=r;imag=i;}谢谢阅读08. Complexoperator+(Complex&c2); //声明重载运算符的函数感谢阅读voiddisplay();private:11。 doublerea;doubleimag;13。};14。Complex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低年级语文教学活动设计
- 《善良》小学语文教学设计及课堂案例
- 小学二年级语文下册第一单元《古诗二首》(《村居》《咏柳》)创新教学设计
- 初中音乐七年级下册《小放牛》对唱教学-核心素养导向的深度学习教案
- 初中英语七年级下Unit8第1课时(1a1e)故事听说课“教学评一体化”导学案
- 初中物理九年级下册跨学科主题教学:智控生活·安全用电防线建构教案
- 初中数学九年级下册:坐标系中的位似变换教学设计
- 初中物理八年级下册《功、势能及其机械能转化》单元整体教学设计
- 小学五年级音乐听赏课《雪橇》-逆向设计下的大单元跨学科融合教学
- 北师大版数学五年级下册折纸的教学设计
- 陕西省西安电子科技大附中2026届中考数学模试卷含解析
- 2026春花城版音乐三年级下册《飞飞曲》课件
- 第5课 亲近大自然 第二课时 课件(内嵌视频) 2025-2026学年统编版道德与法治二年级下册
- 2026年及未来5年中国影子银行市场供需现状及投资战略研究报告
- 高速路养护施工安全培训课件
- 2025年工业CT在军事弹药失效分析报告
- 2026年浙江单招酒店管理专业面试经典题含答案含应急处理题
- SJG 171-2024建筑工程消耗量标准
- 新疆维吾尔自治区小学五年级下学期数学第二单元测试卷-因数和倍数单元检测
- 专升本康复治疗2025年物理治疗学测试试卷(含答案)
- 2025年教职人员个人总结
评论
0/150
提交评论