【每日一C之十九】数组作为参数

每日一C之数组作为参数

       每天一个C语言贝壳厚积薄发积跬步以致千里

 今日贝壳:C语言中,作为参数的数组不能直接传递,将转化为指针传递
           1.参数指针化
           如果使用数组名作为函数参数,该数组名会被转化为指向该数组首元素的指针。如:
                   intfoo(int Array[ ]){ ... }
           该函数声明会被转化成下面的函数声明:
                   intfoo(int * Array){ ... }
           因此,将数组作为函数参数毫无意义,都会做指针化处理。数组作为参数的声明时,上面两种声明方式是等价的,但在其他情况下,不会发生这种自动转化
           2.测试
#include
    
    
     
     
void foo(int Array[])
{
    printf("Sizeof Array :%d \n",sizeof(Array)); //输出作为参数的数组大小
}
int main(){
    int Array[10];
	printf("Sizeof Array :%d \n",sizeof(Array)); //输出原数组大小
	foo(Array);
	return 0;
}

    
    
            上面的程序中:Array在main函数中sozeof值为40,即4*10,在foo函数内sizeof的值为4,即一个指针的大小。该结果显示,数组Array作为函数参数被自动转化为指针了,发生了隐式的指针化。

                     Have a nice day !
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值