char(*p)[15];
char(*p)(int *a);
int(*pt)(char*);
int *pt(char*);
有人帮忙吗?
最佳答案
基本规则:从标识符开始,可以时右读,必须时左读。
- 从标识符开始*。说出来,然后是"is"。将你的“左脚”放在其左侧一个字符。
- 向右阅读,直到读到末尾或
)
。将你的“右脚”放在)
所在位置的右侧一个字符(如果这就是你击中的位置)。- 如果向右阅读时看到
[42]
,请说“array of 42”。 - 如果您在向右阅读时看到
(
,请说“函数获取”,然后递归说出每个参数的类型(但省略参数名称本身),然后通过“并返回”。
- 如果向右阅读时看到
- 现在跳上你的左脚并向左阅读,直到你击中开头或
(
。如果是的话,请将你的左脚放在(
左侧你击中了。- 如果向左阅读时看到
*
或&
,请说“指向”或“引用”。 - 您看到的任何其他内容(例如
const
、int
、MyFoo
),只需说出来即可。
- 如果向左阅读时看到
- 如果你开始了,你就完成了。否则,跳回右脚并转到 2。
* 如果没有标识符,想象一下它必须去哪里——我知道这很棘手,但只有一个合法的位置。
遵循以下规则:
- p 是一个指向 15 个字符数组的指针
- p 是一个指向函数的指针,该函数接受指向 int 的指针并返回 char
- pt 是一个指向函数的指针,该函数接受指向 char 的指针并返回 int
- pt 是一个函数,它接收指向 char 的指针并返回指向 int 的指针
关于c - 我不明白以下指针变量声明在 c 中的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386599/