二维数组与双重指针
2021-03-21 12:27
标签:就会 注意 函数调用 har 元素 lazy 表示 调用 不同的 一、二维数组 int array[10][10]; 二、指针数组 int *array[10]; 三、指向指针的指针 int **array; 函数声明:void fun(int **a); 函数调用:fun(array); 访问:*(*(a+i) + j) 或者a[i][j]?访问元素(使用双重指针表示的二维数组的访问方法) 注意:char **p和char p[2][3]之间不能互相传递参数,因为它们具体的内存分配不一样,这样在运行时就会出现端错误。 还需要注意: 二维数组中的a[i][j]和双重指针中的a[i][j]意思是不一样的。 二维数组中的int a[10][10],a[i][j]指的是第i行第j列等元素。 双重指针int **a中,a[i][j]指的是存放在int *指针所指向地址中的第j个元素。也就是*(*(a+i)+j)。 简而言之char **和char *c[10]的内存分配是相同的,而char **和char [10][10]的内存分配是不同的。 char[10][10]是 一段连续的地址。 而char **c的内存分配是: 二维数组与双重指针 标签:就会 注意 函数调用 har 元素 lazy 表示 调用 不同的 原文地址:https://www.cnblogs.com/Alei777/p/13903712.html
函数声明: void fun(int a[][10])
函数调用:fun(array);
访问: 一般使用a[i][j]来访问数组中的元素
函数声明:void fun(int *a[10]);
函数调用:fun(array);
访问:使用*(a[i]+j)访问数组中的元素
上一篇:python多线程