簡體   English   中英

用C語言在main函數內部和外部遞增數組變量

[英]Incrementing array variables inside and outside main function in C language

先前的文章描述了為什么數組名稱不能遞增。 但是..這兩種不同的遞增方式呢?

void f(int arr[]){
  printf("%d\n",*arr++);
  printf("%d\n",*arr);
}

int main(void){
  int arr[3]={1,2,3};
  f(arr);
  // COMPILE BY COMMENTING THESE TWO LINES BELOW AND ADDING THEM
  printf("%d\n",*arr++);
  printf("%d\n",*arr);
}

我無法弄清楚為什么它在一種情況下有效而在另一種情況下無效。 任何建議/指導歡迎。

因為void f(int arr[])只是void f(int *arr)語法糖。

f函數內部, arr僅是一個指針,而不是數組。

閱讀這篇SO文章以獲得更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM