书是《C++ Primer Plus 第6版 中文版》
数组、指针、结构 是C++的3种复合类型。
注:为了方便,类型名用int为主,变量名用a为主。
数组:
包括数组(例如int a[10];)和字符串(例如char a[10];),还有string类(例如string a="abc";),vector类(例如vector<int>a(5))、array类(array<int,3>a)等。
数组名表示数组所在的(第一个元素)内存地址。
结构:
包括普通结构(例如struct a{int a;double b;})、共用体(例如union a{int a;char b[10];)、结构数组(例如先结构声明,然后a b[5];这样创建5个结构,分别为b[0]、b[1]等)等。
指针:
包括普通指针(例如int*a=&b;),结构指针(例如先声明结构,然后结构名*a=new 结构名),数组指针(例如int a[10];int *b=a;)等
指针指向的是内存地址。
字符串:
以空字符(\0)为结尾的一系列字符,使用双引号括起来(例如"abc",默认最后带空字符\0)。
new和delete:
new在使用的时候请求内存,delete在使用完后释放内存。二者需对应使用,若只new不delete,有可能导致内存泄露。new和delete和指针一起使用,将地址赋给指针。
三种存储方式:
自动变量:在函数内部声明使用,随着函数的退出而终止。使用自动存储空间,通常存储在 栈 中。
静态变量:在函数外部(程序运行期间有效)或函数内部使用关键词static(在函数消亡时保留,再次使用函数时,值为上一次退出时的值),
自由存储空间:又称为 堆 ,在使用的时候分配内存,在不使用的时候可以释放他。