[英]Different array declaration in c while using scanf
有什么區別
for(i=0;i<j;i++)
scanf("%d",&a[i]);
和
for(i=0;i<j;i++)
scanf("%d",a+i);
沒有區別。 &a[i]
與a+i
完全相同。
C 標准中關於數組索引運算符[]
的第 6.5.2.1p2 節指出:
后綴表達式后跟方括號
[]
中的表達式是數組 object 的元素的下標指定。 下標運算符[]
的定義是E1[E2]
等同於(*((E1)+(E2)))
。 由於適用於二進制+
運算符的轉換規則,如果E1
是數組 object(等效地,指向數組對象的初始元素的指針)並且E2
是 integer,則E1[E2]
指定E2
的第E1
(從零開始計數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.