#include <vector>
#include <iostream>
using namespace std;
void fun1(int *a) {
printf("1、int *a :%x %d\n", &a, sizeof(a));
}
void fun2(int a[2]) {
printf("2、int a[2] :%x %d\n", &a, sizeof(a));
}
void fun3(int a[]) {
printf("3、int a[] :%x %d\n", &a, sizeof(a));
}
void fun4(int(&a)[2]){
printf("4、int (&a)[2] :%x %d\n", &a, sizeof(a));
}
void fun5(int * &a) {
printf("5、int * &a :%x %d\n", &a, sizeof(a));
}
int main() {
int *M1 = new int[2]{ 1,2 };
int M2[2]{ 1,2 };
int *M3 = new int(3);
printf("int *M1 :%x %d\n", &M1, sizeof(M1));
printf("int M2[2] :%x %d\n", &M2, sizeof(M2));
printf("int *M3 :%x %d\n", &M3, sizeof(M3));
cout << "-------------------------------------------M1" << endl;
cout << "------------" << endl;
fun1(M1);
cout << "------------" << endl;
fun2(M1);
cout << "------------" << endl;
fun3(M1);
cout << "------------" << endl;
//fun4(M1);//无法用 " int* " 类型初始化 " int (&)[2] "
cout << "------------" << endl;
fun5(M1);
cout << "-------------------------------------------M2" << endl;
fun1(M2);
cout << "------------" << endl;
fun2(M2);
cout << "------------" << endl;
fun3(M2);
cout << "------------" << endl;
fun4(M2);
cout << "------------" << endl;
//fun5(M2);//无法用 " int [2] "类型初始化 " int*& "
cout << "-------------------------------------------M3" << endl;
fun1(M3);
cout << "------------" << endl;
fun2(M3);
cout << "------------" << endl;
fun3(M3);
cout << "------------" << endl;
//fun4(M3);//无法用 " int * " 类型初始化 " int (&)[2] "
cout << "------------" << endl;
fun5(M3);
cout << "-------------------------------------------" << endl;
}
int *M1 :53f98c 4
int M2[2] :53f97c 8
int *M3 :53f970 4
------------------------------------------- int *M1 53f98c 4
------------
1、int *a :53f880 4
------------
2、int a[2] :53f880 4
------------
3、int a[] :53f880 4
------------
4、无法用 " int* " 类型初始化 " int (&)[2] "
------------
5、int * &a :53f98c 4 = int *M1 (引用)
------------------------------------------- int M2[2] 53f97c 8
1、int *a :53f880 4
------------
2、int a[2] :53f880 4
------------
3、int a[] :53f880 4
------------
4、int (&a)[2] :53f97c 8 = int M2[2] (引用,传递的是数组!!)
------------
5、无法用 " int [2] "类型初始化 " int*& "
------------------------------------------- int *M3 53f970 4
1、int *a :53f880 4
------------
2、int a[2] :53f880 4
------------
3、int a[] :53f880 4
------------
4、无法用 " int * " 类型初始化 " int (&)[2] "
------------
5、int * &a :53f970 4 = int *M3 (引用)
-------------------------------------------
后续再逐渐补充