void main()
{
int ar[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
sizeof(ar); //整个数组大小 48
int (*p)[3][4] = &ar; //
int (&dr)[3][4] = ar; // 以上数组名包含数组自身大小;
//数组名和指针的区别
}
//二维数组
//int a3,a2,a1,a0;
//int *p3,*p2,*p1,*p0;
//int **s = &p0;
//s+1; //四个字节
//*s+1; //四个字节 p0+1
//**s+1; //+1 a0+1
// char a3,a2,a1,a0;
//char *p3,*p2,*p1,*p0;
//char **s = &p0;
//s+1; //四个字节
//*s+1; //一个字节 p0+1
//**s+1; //+1 a0+1
/*
void fun1(int ar[10]);
void fun2(int *ar);//首元素的地址 +1是首元素的长度
void fun3(int (*p)[10]);//数组的地址 +1是加数组的长度
void main()
{
int ar[10]={12,23,34,45,56,67,78,89,90,100};
const int n=sizeof(ar)/sizeof(ar[0]);
fun2(ar);
fun3(&ar);
}
/*
void fun5(int (&br)[10]) //数组的地址
void fun4(int a[]) //数组其实也是指针
void fun3(int *a) //指针
void fun2(int &a) //引用
void fun1(int a) //不能改变主函数的值
void main()
{
int ar[10]={12,23,34,45,56,67,78,89,90,100};
const int n=sizeof(ar)/sizeof(ar[0]);
sizeof(ar); //40
int (*s)[10] = &ar; //sizeof(s) =4 sizeof(*s) =40
int (&br)[10] = ar; //sizeof(br) =4
int *p = ar; // sizeof(p)
//int *p[10] sizeof(p)=40 定义十个指针 可以单独使用
//int (*s)[10] sizeof(s)=4 相当于 int p[][4] 二维数组的指针 指向一个第二维度为10的二维数组
//数组名的三个例外
//1、sizeof(ar) sizeof中数组名表示数组 不代表首元素地址
//2、(*s)[10]=&ar 代表整个数组大小
//3、int (&br)[10]=ar; 括号不能少 引用整个数组 数组名代笔整个数组大小
//其他情况数组名代表首元素地址
{
int ar[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
sizeof(ar); //整个数组大小 48
int (*p)[3][4] = &ar; //
int (&dr)[3][4] = ar; // 以上数组名包含数组自身大小;
//数组名和指针的区别
}
//二维数组
//int a3,a2,a1,a0;
//int *p3,*p2,*p1,*p0;
//int **s = &p0;
//s+1; //四个字节
//*s+1; //四个字节 p0+1
//**s+1; //+1 a0+1
// char a3,a2,a1,a0;
//char *p3,*p2,*p1,*p0;
//char **s = &p0;
//s+1; //四个字节
//*s+1; //一个字节 p0+1
//**s+1; //+1 a0+1
/*
void fun1(int ar[10]);
void fun2(int *ar);//首元素的地址 +1是首元素的长度
void fun3(int (*p)[10]);//数组的地址 +1是加数组的长度
void main()
{
int ar[10]={12,23,34,45,56,67,78,89,90,100};
const int n=sizeof(ar)/sizeof(ar[0]);
fun2(ar);
fun3(&ar);
}
/*
void fun5(int (&br)[10]) //数组的地址
void fun4(int a[]) //数组其实也是指针
void fun3(int *a) //指针
void fun2(int &a) //引用
void fun1(int a) //不能改变主函数的值
void main()
{
int ar[10]={12,23,34,45,56,67,78,89,90,100};
const int n=sizeof(ar)/sizeof(ar[0]);
sizeof(ar); //40
int (*s)[10] = &ar; //sizeof(s) =4 sizeof(*s) =40
int (&br)[10] = ar; //sizeof(br) =4
int *p = ar; // sizeof(p)
//int *p[10] sizeof(p)=40 定义十个指针 可以单独使用
//int (*s)[10] sizeof(s)=4 相当于 int p[][4] 二维数组的指针 指向一个第二维度为10的二维数组
//数组名的三个例外
//1、sizeof(ar) sizeof中数组名表示数组 不代表首元素地址
//2、(*s)[10]=&ar 代表整个数组大小
//3、int (&br)[10]=ar; 括号不能少 引用整个数组 数组名代笔整个数组大小
//其他情况数组名代表首元素地址