形参定义成指定大小的数组

时间:2021-03-29 18:52:30

今天在百度知道上看见一个问题。

类似

char *func( char str[10]) {

       printf(“len= %d\n”, sizeof(str));

}

int main() {

       charstr[100] = “there is a problem”;

func(str);

}

 

首先对func函数了解,形参为char str[10],实际上编译器并不会看见这个10.而是作为char str[]来处理。  所以即使你实参数组的长度大于10也无妨。


另外形参也是局部变量,函数结束,也会被销毁的。