c - 这个类型转换是什么意思? (int (*)[10])

标签 c casting

我偶然发现了以下类型转换:

(int (*)[10])

在我看来,这是一个“指向 int 的指针”。 让我们假设以下数组声明:

int array[10];

那么我会假设 &array 的类型是 (int (*)[10])

这是正确的吗?

最佳答案

它是一个指向大小为 10 的整数数组的指针,而不是一个“指向 int 指针的指针”

例如当你传递类型时

 char arr[20][10]

对于一个函数,它会衰减为类型 char(*)[10]

由于编译器必须知道列数才能有效地将二维数组转换为内存中的线性分配,因此它与类型 int ** 不同。

关于c - 这个类型转换是什么意思? (int (*)[10]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30933636/

相关文章:

c - 建立 Bison 语法时,终端上显示了太多无用的规则

c - 在 C 中对链表进行排序

c - 如何使用 ANSI C 获取文件的 sha256 哈希值

java - 将 java.lang.Long 转换为原始 int 的最有效方法

c++ - (类型)值和类型(值)有什么区别?

c++ - 检查我是否可以将一个类分配给另一个类的最通用方法

c++ - 从 Type* 转换为 Type,反之亦然

需要最少样板的 C 跨平台 RPC?

C语言计算时间

php - mysql将字符串自动转换为整数