在我的代码中,我使用了这样的指针数组。
arr = (int*)malloc(N * sizeof(int));
for (i = 0; i < N; i++)
scanf("%d", (arr + i));
因为指针算术指向地址。
但我想知道只写(arr+I(而不写*或&是否正确;。
什么是正确的?
请帮帮我。
表达式arr + i
的类型为int *
,等价于表达式&arr[i]
(甚至等价于表达式&i[arr]
:(。
所以你可以写
scanf( "%d", &arr[i] );
或
scanf( "%d", arr + i );