①现在C++中一般用vector代替数组,只有当vector无法满足程序速度的时候,才使用数组。
②数组下标格式正确的类型应该是size_t.
③理解指针声明语句,从右往左边阅读。
string *pstring 表明:psting是一个指向 string类型的指针。
④避免使用木初始化的指针:一般除非所指向的对象已经存在,否则不要定义指针。如果一定要定义指针,请将指针初始化为 0.
⑤ void*是一种万能指针,可以保存任何类型对象的地址。
⑥引用于指针的区别在于:引用定义的时候必须初始化,给引用赋值是修改关联对象的值。而不是是引用和另外一个对象关联。
⑦指针和typedef:
typedef string *pstring ; const pstring cstr;等价于string *const cstr。
⑧C风格的字符串:以空字符null结束的字符数组:
char ca1[] = {'C' , '+' , '+' , '\0'}
char ca2[] = "C++" ;
一般尽可能的使用STL中的string
⑨动态数组的使用:
1.定义:int *pia = new int[10] ;
2.定义并且初始化:int *pia2 = new int[10]();
3.const动态数组:const int *pci_ok = new const int[100]()
4.可以动态的分配空间:size_t n = getSize() ; int *p = new int[n];
5.动态空间的释放: delete [] pia. 有new必有delete.
①②③④⑤⑥⑦⑧⑨⑩⑪⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳
⑩使用string的c_str()方法可以返回c style类型的指针:const char *str = st2.c_str() ;
使用数组初始化vector。 vector<int> ivec(int_arr,int_arr + arr_size)
⑪指针和多维数组:
int ia[3][4] => int (*ip)[4] = ia => ip = &ia[2]