簡體   English   中英

將指針分配給變量vs將指針分配給C中的數組

[英]Assigning Pointers to Variables vs Assigning Pointers to Arrays in C

大家好,我正在tutorialspoint.com上閱讀C語言中的指針

但是,給指針分配地址有些矛盾,這讓我感到困惑。

舉兩個例子:

/* Assigning address of variable to a pointer */
int  var = 20;   
int  *ip;        
ip = &var;  

/* Assigning address of an array to a pointer */
int  array[] = {10, 100, 200};
int  *ptr;
ptr = array;

我們為什么要分配一個像ip =&var這樣的變量的地址。 但是,當我們分配數組的地址時,缺少'&'字符,例如:ptr = array。

有人可以澄清這種混亂嗎? 本示例取自tutorialspoint.com

這是因為在C編程中,數組的名稱始終指向數組的第一個元素的地址。

更新示例:

例如:int arr [4];

在此處輸入圖片說明

arr和&arr [0]指向第一個元素。

由於兩者的地址相同,因此arr和&arr [0]的值也相同。

當您初始化像'int arr []'這樣的數組時,數組'arr'的名稱指向數組的第一個元素。 因此基本上是arr ==&arr [0]。這在編程中特別有用,因為在發送數組值時,僅發送第一個元素的地址,而將其余元素的地址鏈接到第一個元素的地址。 因此,可以通過*(arr + i)訪問數組中的元素,其中“ i”表示元素的索引。

暫無
暫無

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

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