[笔记] C++基础

版权声明:本文为博主原创文章or学习笔记,未经博主允许不得转载。欢迎留言,私信or邮件。 https://blog.csdn.net/HYY0228/article/details/52563343

第一篇:

第一章:

    运行代码的两种方法 1直接打开.sln文件 2将相信的头文件和源文件拖拽到资源管理器里。

第二章:

    数据类型:整形,构造类型,指针类型,引用类型,空类型。

    八进制:0开头。十六进制:0X或0x开头。

    A和a的ASCII码值分别是41和97。\表示转义,如\t:水平制表,\0:空字符。

    NULL是一种特殊的数据类型,表示空的意思。

    “A”与‘A’不同在前者是A\0,长度为2,后者没有长度。

    C++保留的关键字:

    cin>>x>>y;需要按两次ENTER,一个插入到x,一个插入到y。cin相当于标准库函数scanf。

扫描二维码关注公众号,回复: 3495793 查看本文章

    iomanip.h中中定义了控制流输出格式的函数。ends空字符,hex进制,otc八进制等。

    在ASCII中大小写相差32。

第三章:

    逻辑运算符:&&逻辑与,||逻辑或,!逻辑非(单目)。

    赋值运算符:&=按位与运算并赋值,|=按位或运算并赋值,^按位异或预算并赋值。位运算速度快,所以遇到乘以或除以2的幂次方的情况,采用位运算代替。

    并不是所有出现逗号的地方逗号都是逗号表达式,如函数参数中的逗号仅仅是间隔符。

第四章:

    三种循环语句:1while 2do-while 3for

    三种判断语句:1 if-else,if-esle if(嵌套);2 条件表达式;3switch case break default 这个很容易改成if语句。

    可以使用break语句跳出循环。continue语句是break的补充,是提前结束本次循环。goto 标号,标号是用户自定义的标签,以冒号结束。

    注意一种解决数学的方法:穷举法!用for。或者试探法,用for。另一种:把循环条件单独设置到最后,用While(1)多次循环,知道满足条件得出结果。

    疑问:1goto语句的使用 解决方案4

           2用C++证明一个数的立方等于连续奇数的和。p98。

第五章:ATM取款机程序。

    
 


第二篇:

第六章:

    数组元素逆转算法:把a[i]数据保存在temp中,然后a[i]=a[m-i],a[m-i]=temp即可。

    C++中规定数组名为该数组的起始地址。

    gets(sTring);输入字符串。

第七章:

数组参数的传递:通过数组名传递。实参的值不随形参的变化而变化。

数组名作为参数时,主调函数和被调函数都需要定义。 main函数的参数只能由程序之外传递而来。参数之间空空格。其实际参数是和命令一起给出的,命令名就是可执行文件的文件名。

命令行与main的参数的关系:argc记录了命令行中的命令和参数的个数,指针数组的大小由参数的值决定。命令行调用EXE时候易见。

函数调用方式:嵌套调用,递归调用。也有源文件内部调用(static),和外部调用(加关键字extern)。

局部变量:本函数范围内有效。主函数,分函数,形式参数,复合语句内定义的变量均在它们自身范围内有效。全局变量:函数之外的变量。尽量少用全局变量,全局变量在使用时候已经分配了内存。

五个人分鱼问题。一个是直接解,还有一种递归函数解,后面一种没看懂,但题目真的很帅。

第八章:

程序中所有变量和函数都放在内存中,C++提供了指针对他们在内存中的地址进行访问。

函数的入口指针就是函数的指针。定义方式,类型名 *函数名(函数参数);

栈中变量所属的内存无法改变,属于静态分配,堆中的可变吗,属于动态分配。定义指针后不能直接赋值,应先分配内存(赋变量等)。

注意内存泄漏(需要保留指针以供销毁)和销毁。

p=NULL,可以防止已销毁的内存。

C++中每个语句表达式的结果分为左值和右值两类。左值指的是内存中持续存储的数据,,右指是临时存储的结果。

如果不加特殊声明,引用一般指左值引用。引用实际上是一种隐式指针,它为对象建立一个别名,通过操作符&来实现。 指针和引用的区别:指针是一种数据类型,而引用不是。

(变量?)引用需要初始化,否则报错。

左值和右值得区别是:右值是临时变量,例如函数的返回值,并且无法被改变。

函数参数的传递有两种方式:值传递(不会影响实际参数的值),引用传递(恰恰相反,在调用参数中修改了参数的值,会影响到实际参数)。

指针传递参数也是一种值传递,传递指针变量的副本。如果使用指针的应用,就可以达到在函数体内改变指针的目的。

别名无法被指针指向,所以int &*p非法;指针可以指向变量的引用,相当于指向该变量。 冒泡排序法:每次冒一个大的出来到最右边去。for(i=0;i<n-1;i++),for(j=0;j<n-1-i;j++)。

第三篇:

第十章:内和对象

类是一种新的数据类型。类与结构体类似,但是增加了操作数据的函数。

类的声明:数据成员的声明;成员函数的声明。数据成员可以是任意的,整形、浮点型、字符型、数组、指针等,也可以是对象。另一个类的对象可以作为该类的成员。自身类的对象不可以作为该类的成员,而自身类的指针或引用又是可以作为该类的成员。

类中的方法,即成员函数。定义方法:函数都定义在类体内;将方法实现放在类体外,需要用域运算符::,效果一样;同样可以将类定义放在头文件中,将函数放在实现文件内(头文件和实现文件最好和类名相同或相似)。

说明:1类的数据成员需要初始化,成员函数还要添加代码,类的数据成员不可以在类的声明中初始化。2空类是C++中最简单的类。class CPerson{};起占位作用。

对象的声明:类名 对象名表 多个对象的话用逗号运算符分割。

声明完对象就是对象的应用了,有两种方式:成员引用、对象指针。(还可以是对象名数组、引用形式的对象名)

1“.”运算符的功能是表示对象的成员。2 “->"与”.“运算符意义相同,用来表示对象指针所指的成员。

构造函数:

两种使用命名空间的方法:1、::2、using namespace name;

在源文件中定义函数,要使用命名空间前缀。

嵌套命名空间,使用外层的命名空间和内层的命名空间作为前缀。

第十一章:继承和派生 p260

第十二章:模板

第十三章:文件操作 p355

文件操作包括打开、读写文件。掌握这些的同时还要理解文件指针的移动,能够控制读写位置。

文件流:iostream、fstream、strstream。

打开文件 1使用构造函数打开文件:<文件流类> <文件流对象名>(<文件名>,<打开方式>)

如使用相对路径打开文件:ofstream outfile("test.txt",ios::out)

另注:\示转意,需要用两次才代表一个\。

2利用open函数打开磁盘文件:<文件流对象名>.open(<文件名>,<打开方式>);

文件流对象名是已经定义了文件流对象。

打开文件可以使用以上两种方式,检测一个文件是否打开成功:

void open(const char* filename,int mode,int prot=filebuf::openprot)

如果没有指定打开方式,编译器使用默认值。

eof函数判断是否到达文件尾,fail判断一个流是否坏掉了。

文件的读写使用程序查看文件内容,需要读取文件,而在修改文件内容时,则需要向文件中写入数据。

文件流分类,创建期对象。

文件的打开就是流与文件之间建立连接。

文件流成员函数:。。。

p364页示例 读取文本文件内容。

文本文件中的数据是ASCII码,如果读取图片的内容,以二进制方式读写文件,需要ios::binary模式。

输入输出文件流中有很多可用函数。如tellg用于查找输入文件中的指针位置。

一个流对象可以在不同时间表示不同文件。譬如打开关闭在打开另一个文件。

删除文件:remove函数。

第十四章:综合实验第四篇:第十五章:预处理

不带参数的宏定义:#define PI 3.1415926 用大写字母PI具有标识效果。通常放到文件的开始出或独立的文件中。

可以用#undef终止宏定义的作用域。

带参数的宏定义:还要进行参数替换。可以省去许多输入操作。

#include命令。

第十六章:STL标准模板库

第十七章:程序调试

第十八章:综合实验第五章:

猜你喜欢

转载自blog.csdn.net/HYY0228/article/details/52563343