我正在通过K & R C书,并在优先表中通过此-->
运算符。所以,我想知道是否有类似的操作,即<--
写下了下面的程序:为什么没有“< - ”运算符?
#include<stdio.h>
void main()
{
int x = 5;
while(0 <-- x)
printf("%d",x);
}
它的工作完全正常。那么为什么不是< - 不被视为运营商? (因为它不在优先表!),它的优先级是什么?
我正在通过K & R C书,并在优先表中通过此-->
运算符。所以,我想知道是否有类似的操作,即<--
写下了下面的程序:为什么没有“< - ”运算符?
#include<stdio.h>
void main()
{
int x = 5;
while(0 <-- x)
printf("%d",x);
}
它的工作完全正常。那么为什么不是< - 不被视为运营商? (因为它不在优先表!),它的优先级是什么?
-->
不是一个算子,它是两个; (后)递减并小于。 C是空白不可知的大部分,所以:
x --> y
/* is the same as */
x-- > y
<--
是同样的想法:
x <-- y
/* is the same as */
x < --y
也许你与-->
混淆->
。 ->
取消引用一个指向它所引用类型的成员的指针。
typedef struct
{
int x;
} foo;
int main(void)
{
foo f = {1};
foo *fp = &f;
printf("%d", fp->x);
return 0;
}
<-
根本就不是运营商。
是的,谢谢 –
这不是运营商,而是两个运营商:<
和--
。该代码是相同的
#include<stdio.h>
void main()
{
int x = 5;
while(0 < --x)
printf("%d",x);
}
如果它不是aoperator,为什么它被列在K&R的C precedence表中? –
@PruthviRaj:不是。你的意思是' - >'是否指向一个指针? –
糟糕!我不好,我认为这是' - >':3 –
正如我看到它,这仅仅是一个“小于” <操作者依次递减变量x( - )。它不是一个运营商,而是两个运营商。并且 - 优先于<。
你在哪找到那张表?让我们知道这一点。 – haccks
对不起,以为是' - >'但它是' - >':3 –