今天在百度知道上看見一個問題。
類似
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也無妨。
另外形參也是局部變量,函數結束,也會被銷燬的。