2015-10-19 84 views
-1

为什么我们在scanf中使用&,但在cin中不使用?幕后发生了什么?例如:C++,使用cin对scanf输入的值

scanf("%d", &num); 
cin >> num; 
+4

C++引用与C和指针? – crashmstr

+0

'scanf'修改整数的值,所以必须传递一个指针作为第二个参数。 – ForceBru

+1

@ForceBru:你认为'cin >> num'有什么用? –

回答

5

scanf是从C标准库。在C中,没有这样的参考。因此,你需要传递指针来完成等效的结果。

std::cin来自C++标准库。在C++中,有这样的东西作为参考。所以你可以写std::cin >> num,一切都很好。


如果您在C++中使用scanf,你应该始终使用std::scanfcstdio,这在技术上是从C++标准库,虽然从C标准库发起。