0
点赞
收藏
分享

微信扫一扫

二维数组的传参方式

1.传数组整体

格式:

(1)给函数传参时,用数组名arr;

(2)函数定义时,用int arr[3][5]接收;

(3)在函数中打印元素时,用arr[1][1]。

void test(int arr[3][5]) {
	printf("%d", arr[1][1]);
}
int main() {
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
	test(arr);
	return 0;
}

2.传首元素地址

二维数组的首元素地址为第一行数组的指针(把二维数组看作元素为一维数组的一维数组)

格式:

(1)给函数传参时,用数组名arr;

(2)函数定义时,用int (*p)[5]接收,表示传过来的是数组指针;

(3)在函数中打印元素时,用(*(p+1))[1]或者(*(*(p + 1)) + 1)。

void test(int (*p)[5]) {
	printf("%d\n", (*(p+1))[1]); //p+1表示第二行数组的地址,*(p+1)表示第二行数组,(*(p+1))[1]表示第二行数组的第二个元素
	printf("%d\n", *(*(p + 1) + 1)); //同理,*(p+1)表示第二行数组,即第二行数组的首元素地址,*(p + 1) + 1,表示第二行数组的第二个元素的地址,*(*(p + 1) + 1)表示第二行数组的第二个元素
}
int main() {
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
	test(arr);
	return 0;
}


举报

相关推荐

0 条评论