# include <stdio.h>
# include <stdlib.h>
int main(int argc, char *argv[])
{
int daytab[2][13];
int (*daytab)[13];
int *px;
return EXIT_SUCCESS;
}
我正在学习指针并且难以阅读int (*daytab)[13]
声明。
int *px
被读取为px
是指向int
的指针。
您如何阅读int (*daytab)[13]
?
答案 0 :(得分:7)
应用spiral rule:这是一种称为顺时针/螺旋规则的技术,可以让任何C程序员在头脑中解析任何C声明!
有三个简单的步骤:
从未知元素开始,以螺旋/顺时针方向移动;当遇到以下元素时,用相应的英语语句替换它们:
[X]
或[]
=&GT;数组X
大小为......或数组未定义大小...
(type1
,type2
)
=&GT;函数传递type1
和type2
返回...
*
=&GT;指针
+---------+
| +-----+ |
| ^ | | ( daytab) // daytab
int (*daytab) [13]; (*daytab) // daytab is a pointer
^ ^ | | (*daytab)[13] // daytab is a pointer to an array of 13
| | | | int(*daytab)[13] // daytab is a pointer to an array of 13 ints
| +-------+ |
+-------------+
以下是question的一些答案。全部阅读。