c++重点笔记2

注释:ctrl+k+c

清屏:system(“cls”);

请按任意键继续:system(“pause”);

空指针:指针变量指向内存中编号为0的空间   int * p=NULL;

              可用来初始化指针变量

              其指向的内容空间是不可访问的

野指针:指向菲法的内存空间

0-255之间的的内存编号是系统占用的不可访问

const修饰指针:

     常量指针:const int *p;可以修改指针的指向,不可修改指针指向的值

      指针常量:int * const p ;不可以修改指针的指向,可修改指针指向的值

        const int * const  p;两者都不可修改

结构体:属于用户自定义的数据类型,允许用户存储不同的数据类型

                语法  struct   结构体名{成员列表};

                 定义时struct关键字不可省略,创建时可以省略

                 结构体指针访问结构体属性,用->

内存分区模型:代码区:存放CPU执行的机器指令,是共享的、只读的。

                          全局区;存放全局变量、静态变量、常量(字符串常量。const修饰的全局变量),程序结束后由操作系统释放。

                          栈区:由编译器自动分配和释放,存放函数参数值和局部变量(不要返回局部变量的地址),数据在函数执行执行完后自动释放

                          堆区:由程序员手动分配和释放,若不释放,程序结束后由操作系统回收,主要利用new在堆区开辟内存

程序运行前有代码区和全局区

new开辟内存,返回的是地址,所以用指针接收,用delete释放

int * p= new int (10);      delete p;

用new开辟数组空间,返回数组首地址。 delete[ ] 数组名;

引用:给变量起别名   引用符号&,引用必须初始化,初始化后不可改变,相当于指针常量

引用做函数返回值,不要返回局部变量的引用(因为局部变量存放于栈区中,数据在函数执行完后自动释放);可以作为左值。

常量引用:int a =10; int &b=10; 错误

                                 const int &b =10;正确  (因为编译器自动将代码修改为 int temp=10; const int & b=temp;);此时b =20错误(因为加入const之后变为只读,不可修改

                  作用:用来修饰形参,防止误操作

如果函数声明有默认参数,函数实现就不能有默认参数            函数重载:参数的数据类型不同,参数个数不同,参数顺序不同        (返回值不同不可以)              

原文地址:https://www.cnblogs.com/0901-hcx/p/14956244.html