关于这个问题我已经栽了几个跟头,为了做一个环保主义程序员,我决定有必要把这个问题单独列举出来,节能减排,从我做起!
什么是数组名降级?数组退化?
数组名降级和数组退化是一个概念,它是在某些情况下,对数组的引用会退化为指针。
经过一些材料查找,数组在除了3种情况外, 其他时候都要”退化”成指向首元素的指针:
比如对 char s[10] = “china”;
这3中例外情况是:
1. 数组名放在sizeof()里,sizeof(s)
2. 对数组取地址,&s;
3. 用来初始化s的”china”;
除了上述3种情况外,s都会退化成&s[0], 这就是数组变量的操作方式
概念型的东西就讲到这了,为了更好去理解,请看下面代码:
int main()
{
int a[] = {
1,2,3,4};
printf("%d\n",sizeof(a));
printf