今天在百度知道上看见一个问题。
类似
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也无妨。
另外形参也是局部变量,函数结束,也会被销毁的。