2013-03-07 83 views
5

我想知道的是什么,我知道,无论是三分球,但没有任何差别函数定义中的指针与数组:void fct1(int * p)和void fct1(int p [])有什么区别?

void fct1(int *p) 

void fct1(int p[]) 

的区别

+1

@Mark Ransom感谢您的快速回复。但我听说int p []是一个常量指针,所以它指向的地址无法更改是真的吗? – user2142328 2013-03-07 02:19:18

+0

(“函数指针”是指向函数的指针,而不是指向函数的指针..据说,我确信这*必须*是重复的)。 – 2013-03-07 02:36:51

+1

@ user2142328'p []'声明一个大小为稍后确定。这在函数参数中是非法的,其大小必须立即知道。所以在这种情况下,它会被专门处理,即时转换为'* p'。 – Potatoswatter 2013-03-07 02:40:07

回答

8

绝对没有任何区别的功能使用时,这样的参数。编译器对这两个表单进行相同的处理。

2

没有区别。为了完整起见,这里的标准说什么:

C99标准6.7.5.3节7

参数为“”类型的数组“的声明”应调整到 '合格的指针到类型'',...

相关问题