gpt4 book ai didi

c - 什么是 "Syntax of Expression"

转载 作者:太空狗 更新时间:2023-10-29 16:00:27 25 4
gpt4 key购买 nike

我正在阅读由 K&R 编写的The C Programming Language,我被困在一个关于声明的声明上:

The syntax of the declaration for a variable mimics the syntax of expressions in which the variable might appear.

enter image description here

这是我从上面的声明中了解到的:

当我们声明一个变量(例如 int a)时,这意味着当在表达式中使用该标识符(a)时,它将返回一个指定类型 (int) 的值。

我说的对吗? 表达式语法的实际含义是什么?

最佳答案

让我们看几个例子。

int *A;

您可以在表达式中使用 *A,它的类型为 int,因此 A 必须是指向 int 的指针

int A[100];

您可以在表达式中使用 A[i],它的类型为 int,因此 A 必须是 的数组>int.

但是您可以构造更复杂的声明:

int (((A)));

您可以在表达式中使用 (((A))) 并且它的类型为 int,因此 A 必须是 int

int *A[100];

你可以在表达式中使用*A[i],它的类型是int,所以A ...

  • 必须是一个数组...
  • 及其元素必须是指向int
  • 的指针

所以 A 必须是指向 int 的指针数组。

类似地,用

int (*A)[100];

您可以在表达式中使用 (*A)[i],它的类型为 int,因此 A ...

  • 必须是一个指针...
  • 它指向的东西必须是一个int
  • 数组

所以 A 必须是指向 int 数组的指针。


这就是“变量声明的语法模仿表达式的语法”的意思:当你声明一个变量时,你写了一种迷你表达式,其结果类型是给定,并通过向后推理,您可以推断出所声明变量的类型。

关于c - 什么是 "Syntax of Expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51351838/

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