❶ c語言中,!(--x)什麼意思
C語言運算符,括弧裡面(---x)表示x的值減去1,相當於「x」變為「x-1」,括弧外面「!」表示取反(非0數變為0,0變為1)。
除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符,比如位運算符。
(1)c語言x減減區別擴展閱讀
優先順序,C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。
結合性:C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。
而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。其它的都是從左至右結合。
具有最高優先順序的其實並不算是真正的運算符,它們算是一類特殊的操作。()是與函數相關,[]與數組相關,而->及.是取結構成員。
其次是單目運算符,所有的單目運算符具有相同的優先順序,因此在我認為的 真正的運算符中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的。
另外在C語言里,沒有前置後置之分,因為++ -- 是右結合所以右側優先運算,表現為 "操作數後置優先順序比較高" 的假象,前置和後置的區分是因為運算符重載而後加入C++的
接下來是算術運算符,*、/、%的優先順序當然比+、-高了。
❷ C語言中--*x和*x--有什麼區別
區別是--*x是x地址使用前就減1,*x--使用時按原值。這兩個都是每循環一次,地址減1.
❸ C語言x=*p--和x=(*p--)的區別是什麼
C語言中,*p 和p都常用在指針當中表示一個指針變數,*p 和p的區別:
1、表示的含義不同
*p表示此指針指向的內存地址中存放的內容。
p表示一個指針變數的名字,指此指針變數所指向的內存地址。
2、輸出的格式不同
*p一般是一個和指針類型一致的變數或者常量。
p輸出的是一個16進制數,輸出一個指針的地址。
3、功能不同
*p是讓程序去那個地址取出數據。
p存放的是地址。
例子:
1、int a[5]={1,2,3,4,5};
int *p=a;//這是在定義指針變數p的同時就直接給它初始化,即把數組a的首地址賦給它。
2、int a[5]={1,2,3,4,5};
int *p;//聲明指針變數p
p = a;
(3)c語言x減減區別擴展閱讀
(*p)操作是這樣一種運算,返回p 的值作為地址的那個空間的取值。(&p)則是這樣一種運算,返回當時聲明p 時開辟的地址。可以用賦值語句對內存地址賦值。
例:
int *p;
p=2003H;
*p=3000H
結果:
**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。
&&p=&(&(p))=&(3001H),此時出錯了,3001H 是個常數無法存放地址。
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
❹ C語言中y=x--該怎樣理解
首先 x的值賦給y,然後 x的值自減1;
如果是y=--x;
就是x先自減1,然後賦給y;
❺ C語言中X++和++X有什麼區別
C語言中X++和++X的區別如下:
1、增的順序不同
x++表示x增1後再參與其它運算。++x是x參與運算後,x的值再自增1。
2、自增類型不同
x++屬於後置自增運算。++x屬於前置自增運算。
(5)c語言x減減區別擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。
參考資料來源:網路_c語言
❻ c語言x減減等於2是什麼意思呀
x--=2是錯誤的表達,x--表示的是
x=x-1;
x--=2翻譯過來事實上就變成了
x=x-1=2;
c里是不能對表達式賦值的,所以這是錯誤的表達。你想寫的可能是x-=2,這是合理的,x-=2即為:
x=x-2;
另外還有x+=n,x*=n,x/=n,x++,++x,--x等表達方式,其中n可以為任意常數或數值變數
❼ 到底怎麼理解c語言當中的x--我看到有人要是先用再減,具體到底怎麼使用比如一個for循環,fo
x--就是x這個變數自己減一定的數值,具體減去的數值和變數類型有關。上題x會-1
❽ c語言中,printf輸出裡面,(x--)和(x++)區別
x++或者x--叫後加或者後減,意義就是先用x的值,之後才對x加1或減1,至於++x或者--x是先對x加1或減1,之後再用。
❾ C語言,x-是什麼意思和x--有區別嗎
x-是書上印錯了,根本沒有x-
要麼是x--
要麼是x-1
要麼是-x
不行你可以把那代碼拿去編譯,編譯通不過