我可以在scanf中使用指针来获取数组中的输入吗?
我想在c中这样做:
scanf("%d",a+i);
其中a
是大小为10
的数组。 而i
反对循环。 这可能吗?
绝对:如果a
是int*
或数组int a[10]
,并且i
介于0和9之间,则此表达式有效。
a+i
表达式是&a[i]
的指针算术等价物,它也是传递给scanf
的有效表达式。
是的,您可以使用+ i而不是&a [i] ,,,以下代码要求您输入10个数字并将它们保存在数组中,然后显示数字。
检查此代码:
#include int main (void) { int a[10], i, j = 0; for(i = 0; i < 10; ++i ){ printf("Element no %d = ",i); scanf("%d",a+i);} printf("Elements in your array are: "); for(j = 0; j < 10; j++) printf("%d ",a[j]); return 0; }
我希望这段代码可以帮到你!!
试试这个解决方案
#include int main (void) { int *p, i, j = 0, n; printf("enter the value of n "); scanf("%d",&n); for(i = 0; i < n; ++i ){ scanf("%d",p+i);} printf("Elements in your array are: "); for(j = 0; j < 10; j++) printf("%d ",*(p+i)); return 0; }