c - 这是指向数组开头的指针的指针吗?

标签 c arrays pointer-to-pointer

我刚刚一直在帮助某人编写一些代码。他有这个:

char dataArray[10];

然后想得到一个指向数组开头的指针。而不是使用:

&dataArray[0]

或者只是

dataArray

他用过

&dataArray

他最终得到了一个指向那里的指针吗?我不确定 &dataArray 会给他什么。

最佳答案

  • &dataArray[0]char * 类型。这是指向 char 的指针。
  • dataArraychar[10]
  • 类型
  • &dataArray 将是 char (*)[10] 类型。这是一个指向数组的指针。

除此之外, 将相同,即它们指向相同的地址,但它们的类型不需要兼容。

它们都不是指针到指针。它们只是不同类型的指针。

注意:因为数组衰减属性,char [100] 将衰减为 char *,例如,当作为函数的参数传递时.

关于c - 这是指向数组开头的指针的指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892206/

相关文章:

c - 不兼容类型 : structure and scalar

c++ - 我们是否需要在 x86 上彼得森锁的 unlock() 函数中使用 mfence?

php - 使用 POST/GET 将数组从 Objective C 发送到 PHP

c++ - 动态内存寻址和释放

c - 无法在函数内分配内存并在 C 中返回它

c - C 中的中值窗口

c - 数组元素乘法的二叉树方法

c++ - 打印出指向 char 数组第一个索引的指针的值

javascript - 为什么我们应该递减 i 变量并在函数中使用 break?