小编cod*_*ram的帖子

最里面的括号是在 C 中首先计算的吗?

考虑以下有关此表达式的问题: (a+b)+ (c +(d+e)) +(f+g)

在 C 中,我们使用优先级和结合性来决定应该首先评估哪个运算符,如果有多个运算符具有相同的优先级,那么它们应该以什么顺序关联。

我的问题是:

  1. (d+e) 是否首先由编译器评估,因为它是表达式中最内层的嵌套括号?

  2. 如果是这样,关联性和优先级是否以某种方式建议首先进行最内括号评估?

  3. 我强烈认为它没有,如果没有,那么为什么编译器甚至决定首先评估最里面的括号?因为从左到右并在同一级别评估括号对我来说似乎更合乎逻辑。

c

4
推荐指数
1
解决办法
152
查看次数

在二维数组A[m][n]中,A的值如何与*A相同?

我对二维数组的了解:

  1. 在数组中,数组名称是指向第一个元素地址的指针
  2. 这里我们可以将 A 视为数组的数组,因此 A 将指向第 0 个一维数组
  3. 所以 A+i 会指向 A 的第 i 个元素
  4. *(A+i) 将指向 A 的第 i 个元素的第一个元素
  5. 那么在 2D 数组中 A+i 地址值应该与 *(A+i) 相同

但这对我来说没有意义 A 值如何与 *A 相同,有人可以告诉我这是如何在内存中工作的,我知道这是正确的,但我无法向自己解释

c pointers pointer-arithmetic multidimensional-array implicit-conversion

0
推荐指数
1
解决办法
97
查看次数