c - C语言中的指针数组和指针数组有什么区别?

标签 c programming-languages

请告诉我指针数组和数组指针有什么区别,特别是在 C 语言中

最佳答案

设 T 为随机类型(int、long int、double、enum ecc..),则:

int n=3;
T arr[n];
T*p=arr;

p 是指向 T 数组 arr 第一个元素的指针,因此您可以像这样访问数组的第一个元素:

arr[0]="whatever you want but a r-value"

p=...

这是一种无需索引即可在数组中移动的简单方法,也是按值传递变量的绝佳解决方案。请记住,指针具有指向对象的左值作为右值,当取消引用指针时,我们获得指向的对象。所以写 p+1 意味着将指针移动到数组的第二个元素。 指针数组实际上是该对象的集合(指向变量或另一个数据结构的指针)。例如,您可以使用 int 指针数组来跟踪线性列表的所有元素。由于您没有定义每个指针,因此它们未被引用,因此这可能是一种危险的编码方式。

关于c - C语言中的指针数组和指针数组有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819483/

相关文章:

c# - 为什么 C# 中不包含 Java "throws"子句(在方法声明中)?

C getline() 在 EOF 之前返回 -1

c# - 将 C 中包含 unsigned char 指针的代码移植到 C#

c - 以下程序如何在 C89 模式下编译时输出 `C89` 而在 C99 模式下编译时输出 `C99`?

Java、Code Igniter、RoR、DJango Web 应用程序挑战

programming-languages - 同形性究竟是什么意思?

java - 有没有一种优雅的方法可以对 Java 中的 for-each 循环的最后一个元素执行某些操作?

java - "code against"或 "resolve against"是什么意思?

c - 如何正确初始化 "min"变量?

在函数c中更改数组