C++ 学习笔记
下面是我在用C++进行编小程序的过程中,遇到了一些问题做的笔记,供自己以后注意:
- C++比C多提供了一种数据类型string, 在C中使用字符串的特定函数需要#include<string.h>,但是在C++中, 只需要#include <string>,就可以直接使用string数据类型;如定义字符串常量string string1;字符串常量结尾没有‘’。输入输出字符串可以直接cin >> string1, cout<<string; (值得注意的地方时cin不能识别空格。)赋值是string1 = “hello!”;
- 形参引用:在函数定义时,定义形参是实参的引用类型如 print(student & stud);但是在调用的时候直接写student stu; print(stu);这样 stud就是stu的引用。可以通过改变形参的值来达到改变实参值的效果。
- 动态分配地址:C++中能识别C 中的malloc, free, 但是不建议这么使用。可以使用C++中的new, delet;
- 类的定义,类的定义放在一个.h文件中,而类中的成员函数放在相应的.cpp文件中。这样,不同程序调用类时,类的定义只需要编译一次即可。
- 数组作为函数形参实参,f(int a[]);需要定义形参与实参的类型定义一致;
- 关于指针与数组:一维数组比较简单,即指针p = a,变量p中存储的值是数组a的首地址,及a[0]的地址。因此*p = a[0], p = &a[0]; p+1 = &a[1]; 若a是多维数组,则a+i = &a[i],要表示a[i][j],可写成*(*(a+i)+j)或者*(a[i]+j); 若定义指针int *p; p = a[0]; 则*(p+1) = a[0][1]。这是因为p是一个指向整形数据的指针。若指针定义为int (*p)[4], p为指向含四个元素的数组类型,则p+1 = &a[1]; *(*(p+i)+j) = a[i][j]。
- 待续。。。