题主学习别人的代码
int main() {
int n;
cin >> n;
long long* a = new long long[n + 1];
for (int i = 1;i <= n;i++) {
scanf("%d", a+i);
}
其中scanf("%d", a+i)的写法让题主不能理解,请问这种语法是依照什么规则的呢?为什么能读取一个数组呢?(好像读取的速度还比cin快很多)
题主学习别人的代码
int main() {
int n;
cin >> n;
long long* a = new long long[n + 1];
for (int i = 1;i <= n;i++) {
scanf("%d", a+i);
}
其中scanf("%d", a+i)的写法让题主不能理解,请问这种语法是依照什么规则的呢?为什么能读取一个数组呢?(好像读取的速度还比cin快很多)
scanf的参数列表是这样的,规格化字符串,若干个对应字符串表示的地址
这里字符串是%d,是读入一个整数,所以也需要传入一个整数变量的地址。
而数组指针正是一连串整数的地址