gpt4 book ai didi

c - 如何读取c中的声明

转载 作者:行者123 更新时间:2023-11-30 21:46:50 25 4
gpt4 key购买 nike

所以我是 C 语言的新手,刚从 Java 出来,我想了解如何阅读声明。我知道我举了一个例子,但我希望能够阅读所有声明并清楚地理解它。我并不是真的要求你们解决这个问题,只是指导我

For example:
int point *[];
int point *()[];

最佳答案

要破译 C 声明,请使用右 - 左规则

对于您的示例int point *[];被读作point是指向int的指针数组

首先了解符号的含义。

* // "pointer to"
[] // "array of"
() // "a function returning"

既然您知道了这些符号,您就可以破译任何声明。

例如 int *(*指针())();`

第 1 步查找标识符

int *(*pointer())();
^^^^^^^

在本例中它是指针,因此您读作“指针是”

第 2 步使用从右到左规则

int *(*pointer())();
^^

你先向右移动,然后你会碰到(),所以你读作指针是函数返回

第 3 步继续规则

    int *(*pointer())();
^

然后你再次向右移动,但这里有一个右括号),所以你向标识符左边移动,这里有一个*,所以你读作指针是返回指针的函数

第 4 步继续规则

int *(*pointer())();
^^

然后你继续向左移动,但是有一个左括号(,所以你不能向左移动,所以现在你向右移动。现在你到达了(),您读作指针是函数返回指向函数返回的指针

第 5 步继续规则

int *(*pointer())();
^

现在你不能向右移动,因为没有更多的符号,所以向左移动并到达*,您读作指针是函数返回指针到函数返回指针

第 6 步继续规则

int *(*pointer())();
^^^

现在你不能向左或向右移动,因为你没有符号了,所以你读的是int,你终于有了指针是函数,返回指向函数的指针,返回指向 int 的指针

关于c - 如何读取c中的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22848021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com