我正在通過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 –