#include <iostream>
using namespace std;
void func(int a[2][3] )
{
printf( "a[1][1] = %d\n", a[1][1] );
printf( "%s\n", typeid(a).name() );
}
int main()
{
int a[2][3] = { 1, 2, 3, 4, 5, 6 };
func(a);
printf( "-----------------\n" );
printf( "%s\n", typeid(&a).name() );
printf( "%s\n", typeid(&a[0]).name() );
printf( "%s\n", typeid(&a[0][0]).name() );
int (*p)[3] = a;//&a[0];
printf( "p[1][1]=%d\n", p[1][1] );
printf( "*p[1]=%d\n", *p[1] );
printf( "(*p)[1]=%d\n", (*p)[1] );
printf( "**p=%d\n", **p );
int * p1 = &a[0][0];
printf( "p1[1] = %d\n", p1[1] );
return 0;
数组元素作为参数传递是退化为指针,但为了能够标示数组,跟缺省声明一个数组一样,
using namespace std;
void func(int a[2][3] )
{
printf( "a[1][1] = %d\n", a[1][1] );
printf( "%s\n", typeid(a).name() );
}
int main()
{
int a[2][3] = { 1, 2, 3, 4, 5, 6 };
func(a);
printf( "-----------------\n" );
printf( "%s\n", typeid(&a).name() );
printf( "%s\n", typeid(&a[0]).name() );
printf( "%s\n", typeid(&a[0][0]).name() );
int (*p)[3] = a;//&a[0];
printf( "p[1][1]=%d\n", p[1][1] );
printf( "*p[1]=%d\n", *p[1] );
printf( "(*p)[1]=%d\n", (*p)[1] );
printf( "**p=%d\n", **p );
int * p1 = &a[0][0];
printf( "p1[1] = %d\n", p1[1] );
return 0;
}
有些维数大小是必须声明。