数组形参不是退化为指针了吗??
#include <stdio.h>
2
3 int Bubble(int n[]);
4 int main()
5 {
6 int i;
7 int cArry[5] = {2,8,7,4,1};
8 Bubble(cArry);
9 for(i=0; i<5; ++i)
10 {
11 printf("%d ",cArry[i]);
12 }
13 return 0;
14 }
15
16 int Bubble(int n[])
17 {
18 int i;
19 int j;
20 int k;
21 int nTemp;
22 printf("cArry is:%d\n",sizeof(n)); //为什么是8??不是退化为指针了吗?? 23 for(i=0; i<5; ++i)
24 {
25 for(j = i+1; j<5; ++j)
26 {
27 if(n[i]>n[j])
28 {
29 nTemp = n[i];
30 n[i] = n[j];
31 n[j] = nTemp;
32 }
33 }
34 }
35
36 for(k=0; k<5; ++k)
37 {
38 printf("%d\n",n[k]);
39 }
40 return 0;
41 }
在VS2005中确实是4,退化为指针了。但是Linux下面gdb调试时候为啥是8呢??搞不懂、请教
[解决办法]