假设我有一些功能function,以下原型在所有意义上完全相同吗?
sometype function(sometype2 arr[],...);
sometype function(sometype2 * arr,...,);
Run Code Online (Sandbox Code Playgroud)
我认为他们是,但我的教授从未真正解释过.
是的,给出的原型是等价的.
将数组传递给函数时,实际发生的是指向数组的第一个元素的指针传递给函数.这被称为当作为参数传递时衰减为指针的数组.
在这两种情况下,值都sizeof arr将返回指针类型的大小,在大多数系统上通常为4或8,而不是数组的字节大小.