为什么我们使用&在scanf中,但不是在cin?幕后究竟发生了什么?例如:
scanf("%d", &num);
cin >> num;
答案 0 :(得分:5)
scanf
来自C标准库 1 。在C中,没有参考这样的东西。因此,您需要传递指针以实现相同的结果。
std::cin
来自C ++标准库。在C ++中,是这样的参考。因此,你可以写std::cin >> num
,一切都很好。
1 如果您在C ++中使用scanf
,则 应始终使用来自std::scanf
的{{1}},其技术上来自于C ++标准库,虽然源自C标准库。