我正在阅读由 K&R 编写的 C编程语言,我被困在一条声明中,声明有关声明的内容:
变量声明的语法模仿可能出现该变量的表达式的语法。
这是我从上述声明中所了解的:
当我们声明一个变量(例如int a
)时,这意味着当在表达式中使用该标识符(a
)时,它将返回指定类型的值({ {1}}。
我正确吗? 表达语法到底是什么意思?
答案 0 :(得分:7)
让我们看几个例子。
使用
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
数组的指针。
这就是“ 变量声明的语法模仿表达式的语法”的含义:声明变量时,您编写了一种类型为mini-expression的结果类型为给定,并通过向后推理,可以推断出要声明的变量的类型。