【问题标题】:Why isn't there a "<--" operator? [duplicate]为什么没有“<--”运算符? [复制]
【发布时间】:2014-05-20 00:40:53
【问题描述】:

我正在阅读 K&R C 书籍并通过优先表中的这个 --&gt; 运算符。所以,我想知道是否有类似的运算符,即&lt;--,并编写了以下程序:

#include<stdio.h>
void main()
{
   int x = 5;
   while(0 <-- x)
       printf("%d",x);
}

它工作得非常好。那么为什么不

【问题讨论】:

  • 你在哪里找到那张桌子?让我们知道。
  • 抱歉,误以为是--&gt;,但实际上是-&gt; :3
  • 除了&lt;--,还可以延长箭头的长度:&lt;--------------&gt;

标签: c


【解决方案1】:

--&gt; 不是一个运算符,而是两个; (后)递减和小于。 C 在大多数情况下与空格无关,因此:

x --> y
/* is the same as */
x-- > y

&lt;--也是同一个思路:

x <-- y
/* is the same as */
x < --y

也许您将-&gt;--&gt; 混淆了。 -&gt; 取消引用一个指针以获取它所引用的类型的成员。

typedef struct
{
    int x;
} foo;

int main(void)
{
    foo f = {1};
    foo *fp = &f;
    printf("%d", fp->x);
    return 0;
}

&lt;- 根本就不是运算符。

【讨论】:

  • Re "&lt;- 根本不是运算符。",但它可以是有效代码的一部分。秉承&lt;-- 的精神,还有x &lt;- 4 (x &lt; -4)。
【解决方案2】:

这不是一个运算符,而是两个运算符:&lt;--。代码与

相同
#include<stdio.h>
void main()
{
   int x = 5;
   while(0 < --x)
       printf("%d",x);
}

【讨论】:

  • 如果不是aoperator,为什么要列在K&R C优先表中?
  • @PruthviRaj:不是。您的意思是 -&gt; 取消引用指针吗?
  • 糟糕!我的错然后我以为是--&gt; :3
【解决方案3】:

在我看来,这只是一个“小于”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 2020-01-18
    • 2015-12-14
    • 1970-01-01
    • 2015-05-23
    • 2020-07-21
    • 2017-10-26
    • 2012-10-03
    相关资源
    最近更新 更多