繁体   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