【发布时间】:2017-05-23 18:53:51
【问题描述】:
我有这段代码,它使用了一个传递数组指针的函数
#include<stdio.h>
void func(int ptr[][3])
{
printf("%d %d",*ptr,*ptr+1);
}
void main()
{
int arr[2][3]={{1,2,3},{4,5,6}};
int (*ptr)[3]=arr;
func(ptr);
}
现在,如果我将实际的数组名称传递给函数
#include<stdio.h>
void func(int ptr[][3])
{
printf("%d %d",*ptr,*ptr+1);
}
void main()
{
int arr[2][3]={{1,2,3},{4,5,6}};
int (*ptr)[3]=arr;
func(arr);
}
上述两个代码都会执行并打印相同的地址。但是,如果多维数组的数组名做同样的工作,那么有一个指针有什么意义呢。 或者它们之间有什么区别?
【问题讨论】:
-
请选择一种语言。根本不会用 C++ 编写这样的代码。
-
你想要第二个例子
func(ptr);-->func(arr);? -
@BLUEPIXY 我想知道它们之间的区别
-
看来你的第一个代码和第二个代码没有区别。
-
你的两个程序一模一样
标签: c pointers multidimensional-array