递归
函数的定义
注意一下在命名函时,可以不写参数的名称,比如:
结构体排序
1 2 3 4 5 6 7 8 9 10 11 12 13
| void mySwap(Data *p1,Data *p2){ Data t=*p1; *p1=*p2; *p2=t; } for(int i=0;i<n-1;i++){ for(int j=0;j<n-i-1;j++){ if(a[j].num>a[j+1].num || (a[j].num==a[j+1].num && a[j].value>a[j+1].value)){ mySwap(&a[j],&a[j+1]); } } }
|
- 传入时注意,要加上&,传入地址,使得函数可以交换地址。
数组的定义
基本方法
1 2 3 4
| 数据类型* 指针名 = new 数据类型[元素个数];
delete[] 指针名;
|
一维数组
示例
1 2 3 4
| int n = 5; int* arr1 = new int[n]; delete[] arr1;
|
二维数组
内存连续
1 2 3 4 5 6 7 8
| int** arr = new int*[rows]; arr[0] = new int[rows * cols];
for (int i = 1; i < rows; i++) { arr[i] = arr[i-1] + cols; }
|
内存不连续
1 2 3 4 5
| int** arr = new int*[rows]; for (int i = 0; i < rows; i++) { arr[i] = new int[cols]; }
|