2012-01-19 131 views

回答

12

C中的「字符串」是字符緩衝區的地址。
您想要scanf填充緩衝區中的內存,該內存由變量指向。

相比之下,int是一塊內存,而不是地址。爲了讓scanf填充該內存,您需要傳遞其地址。

1

由於標識bufchar buf[512];降級爲指向數組的第一個元素的指針,因此不需要指定指向scanf參數中的緩衝區的指針。通過傳遞&buf傳遞給scanf的指針現在是一個雙向間接指針(它是一個指向緩衝區開始指針的指針),並可能導致程序崩潰或其他不良行爲。

相關問題