【问题标题】:Reading a pointer declaration [duplicate]读取指针声明[重复]
【发布时间】:2013-12-23 08:04:21
【问题描述】:
# 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]

【问题讨论】:

标签: c


【解决方案1】:

Apply spiral rule: 是一种称为顺时针/螺旋规则的技术,它使任何 C 程序员都可以在头脑中解析任何 C 声明!

只需三个简单的步骤:

  1. 从未知元素开始,沿螺旋/顺时针方向移动;当遇到以下元素时,用相应的英文语句替换它们:

    [X][]
    => Array X size of ... 或 Array undefined size of ...

    (type1, type2)
    => 函数传递 type1type2 返回...
    *
    => 指向

    的指针
  2. 继续以螺旋/顺时针方向执行此操作,直到所有标记都被覆盖。
  3. 始终首先解决括号中的任何问题!这将是有道理的;

     +---------+              
     | +-----+ |     
     | ^     | |      ( 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 的一些答案。全部阅读。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多