c++学习

C++进阶

开学已经四周了,结束了c语言的学习进入了c++,首先进行的就是符复合类型的学习,学习了一种新的数据类型:auto类型,用auto声明变量的类型,编译器自动分析表达式的类型(必须有初值)
    然后是指针,指针持有一个对象的地址,称为指针指向这个对象,通过指针可以间接操纵它指向的对象。指针指向的是地址,因此数据前面要加取址符&指针值为0时表示它是一个空指针,表示空指针的方法有int *pi=nullptr
int *p2=0
int *p3=NULL
new跟delete分别是向内存申请空间跟释放空间,
引用又称别名,它可以作为对象的另一个名字,引用只能绑定一个对象,同时不能定义引用的引用,指针与引用的区别,指针是通过解应用间接访问对象,而引用是直接访问对象。
右值引用引用的是表达式右边的值。
const限定的指针跟引用
const int *pi是指向常量的指针,不能通过指针修改指针指向的对象,但是一个非const地址可以赋值给一个const指针。总结下来就是const限定只读不写,不能被改变。
当一个对象的值可能在编译器的控制或检测之外改变时,应该将对象声明为volatile。
结构体能够把一组不同类型的数据结合在一起组成复合类型,结构体由关键字struct定义,例如struct x {
char a;
int b;
float c;};
定义完结构体后就可以创建此类型的对象,例如
x s1;
s1.a=‘z’;
联合union类似于组合体struct,但占用空间小,却容易出错。
数组的取地址&取得是第一个无效位置(既最后一个有效元素的的下一位)两个指针相减得到的是他们之间的距离,begin与end分别指向的是第一个有效元素的位置与最后一个有效元素下一位的位置。
标准库类型string表示可变长度的字符序列,可以更方便的表示字符串,但string类型不能自动略过空格,可以略过前导空白。
empty()函数可以判断string对象是否为空,返回值是一个布尔值。
标准库类型vector类似于数组,但它不是必须提前声明包含数据的个数,也称为动态数组,push_back()操作可以向vector末尾插入元素,而pop_back()操作则可以删除vector末尾的元素,size()操作返回vector中的元素个数。
访问vector中的元素时也要注意下标的合理性。
文件读入需要头文件fstream即文件流标准库文件,具体需要ifstream in();打开完文件后要及时使用in.close();关闭文件,将结果写入文件要用ofstream out;最后还需要用oit.close;关闭文件。
函数中实参区别于形参,实参是确定值,不可以加数据类型。使用return语句返回值并实现控制权的转换。
函数还可以直接或间接调用自己,此类函数称为递归函数,参数的传递包括传值,传指针,传引用,传值传递完之后既结束了链接,且只能返回一个值,但比较方便,其他大部分都需要传引用,传指针有时会出现错误。
返回值中局部变量不能引用,调用函数必须存在。
有时我们需要定义一组函数,它们对不同类型变量执行相似的操作,这种函数叫做重载函数,这样可以避免函数名字的冲突。
  通过这四个周的学习,我们对c++的认识更加深刻了,学会了许多新的定义新的方法,能够充分利用计算机,准确定义数据,希望在接下来的学习中能更加努力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值