C語言中a i 中為什麼是先對a賦i值?按照優先順序原則不是在前面嗎

時間 2021-08-30 11:19:49

1樓:月光疾風

一直以來,++ --語法浪費了太多人的時間。說句實在話,++ -- 在c語言中其實是乙個很細節的語法,除了表達簡練外,真的沒有什麼其它的好處了。

由於中國的c語言教程長期以來被譚浩強主宰,而譚又錯誤的把++ --作為乙個c語言重點來教,並增加了一些難點,把本來很簡單的語法,搞得複雜無比!

簡單的來說,++i 和 i++,在單獨使用時,就是 i=i+1。

而 a = ++i,相當於 i=i+1; a = i;

而 a = i++,相當於 a = i; i=i+1;

如果實在搞不明白++ --怎麼回事,那也不是什麼天塌下來的事。

因為a=++i完全可以寫成 i++; a=i。

a=i++完全可以寫成 a=i; i++。

而且,這也是一種好的程式風格:++ -- 語句如非特殊需要,請單獨一行使用。

2樓:流瓶

沒乙個看懂提問者的意思,他是問根據運算子的優先順序,++優先與賦值號=,應該是先i++再賦值給a,而實際是先賦值a=i,再i++,這違背了運算子的優先順序,我也想問這個問題的。要是就是書中說的運算優先順序說的不嚴謹還是其他什麼原因。

3樓:song宋

會先對a進行賦值,然後i再自增

因為上述語句造價於:a=i;i++;

4樓:廿四點半

孩子,加加減減運算子是每個初學者都會遇到的難題。

++i和i++是有區別的。隨便舉個例子:int b, a = 1; b = a++; 這裡 如果printf b的話,是1,執行完 b = a++這一句之後a才變成2;如果是++i就是b等於2,a也等於2.

這回你懂了吧。滿意請採納,謝謝

c語言中&a[i]什麼意思

5樓:聽不清啊

c語言中&a[i]就是取陣列元素a[i]的位址。

可以用在scanf("%d",&a[i]);

或為同型別的指標賦值時:

p=&a[i]; (當然,這也可以用p=a+i;來實現)

6樓:匿名使用者

取陣列a中第i+1個元素的位址

如語句for(i=0;i

scanf("%d",&a[i]);

表示用鍵盤輸入,給陣列a賦值

7樓:匿名使用者

&為取位址符,&a就是a這個變數的位址

=0;a〔i〕!=′\0′;i++

一般在for語句中出現

i=0是為迴圈變數i賦初值

a(i)!='\0'是迴圈持續條件

i++是迴圈變數每次的變化,這裡是每次遞增1其中a(i)!='\0'表示a(i)不是截止符在c中,字串之後都會跟隨乙個'\0'字元,表示字串終止

8樓:匿名使用者

a[i] 表示陣列a中的下標為i的陣列物件的值。&a[i]表示的a[i]這個陣列物件在計算機記憶體裡的位置。

9樓:運偲戢賓實

將a邏輯取反後賦值給i。

例如a為非0(例如9),則i為0(假),

如果a=0,則i=1.

10樓:篤勳盈高旻

(a+k)與(i+k)是用圓括號括起來的,判斷(a+k)與(i+k)的大小;(a+k)<=(i+k)正確i=1,錯誤i=0。

c語言常用運算子的優先順序口訣是:「單算關邏條賦逗」;

如果加入位運算子,完整口訣是:「單算移關與,異或邏條賦」。

「單」表示單目運算子:邏輯非(!),按位取反(~),自增(++),自減(--),取位址(&),取值(*);

「算」表示算術運算子:乘、除和求餘(*,/,%)級別高於加減(+,-);

「移」表示按位左移(<<)和位右移(>>);

「關」表示關係運算子:大小關係(>,>=,<,<=)級別高於相等不相等關係(==,!=);

「與」表示按位與(&);

「異」表示按位異或(^);

「或」表示按位或(|);

「邏」表示邏輯運算子:邏輯與(&&)級別高於邏輯或(||);

「條」表示條件運算子(?

:);「賦」表示賦值運算子(=,+=,-=,*=,/=,%=,>>=,<<=,&=,^=,

|=,!=);

這只是乙個簡單記法,沒必要刻意去記。

11樓:麼雅藍問芙

這裡考了乙個

運算級優先的問題,你說的這個我們首先肯定的一點是++自增運算子肯定比=這個賦值運算子的運算級要高的所以要先執行a[i]++然後再把a[i]++的指賦給a[i],這裡需要注意的一點就是a[i]++是指a[i]的數值加一,跟後面要學習到的p++(這裡的p指的是指標)是不一樣,那給你舉個例子吧,像你這道題

我們假設a[i]=5,那最後a[i]還是等於5,但是運算完了以後的a[i]確等於6,反正這裡還設計到乙個a[i]++和++a[i]的運算先後關係,你還是先看看書好了

這個也是蠻簡單的

希望我的解釋對你有幫助。~

12樓:悉鑫善廣

!是邏輯運算子,邏輯上只有0與1,在c語言中不是0的值都看成邏輯1,所以當a=0時,!a

的值是1,當a不等於0時,!a為0

c語言中賦值語句的語法是怎樣的,C語言中賦值語句的語法是怎樣的

小夏在深圳 賦值的語法規則就是 資料型別 變數名 表示式 表示式可以理解為一個值或一個計算公式就行,表示式加一個英文符號分號就是語句。例如 我們今天要用到的,我買了幾斤蘋果。就可以這樣寫 方式一 方式二 擴充套件資料1 c語言中,賦值運算的操作是有方向的,即將右側表示式的值 也稱為右值 賦值左側的變...

c語言中temp是什麼,C語言中temp是什麼

temp 是自己定義的。常常定義為起臨時作用的變數。比如有a,b兩個變數,現在交換他們的值,就再定義個temptemp a a bb temp 這樣就實現了交換兩個值。 一般只是用來定義區域性變數的,由於臨時使用,所以名字取的有點隨意. 天雲一號 在c語言中,temp沒有特別的含義,既不是關鍵字也不...

c語言中char str括號裡為什麼是

這表示的是字元陣列,128是字元陣列長 不是字串長 char str 456 也是可以的。其中每個成員的值在 128 127之間,str 0 str 455 每個值不能超過127.如果超過,則擷取低位位元組存貯。題目裡是統計輸入字串中小寫英文字母個數,開頭用的就是這個。這個就好理解了。ascii 就...