z = x++ - --y * b/a;
生活随笔
收集整理的這篇文章主要介紹了
z = x++ - --y * b/a;
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
z = x++ - --y * b/a;
int main(){
? ? ? ? int z,x = 5,y = -10,a = 4,b = 2;
? ? ? ? z = x++ - --y * b/a;
? ? ? ? printf("%d\n",z);
? ? ? ? return 0;
}
上面這個式子,在C中其實是理解成 z = ((x++)--)-y * b / a;
所以其實是z = ((5++)--)-(-10)*2/4 = 5-(-5) = 10;
大家不要被題目故意留的空格迷惑了,編譯器是不會理那些空格的,它看起來就是z=x++---y*b/a,而C語言讀取符號時的詞法分析遵循的規則叫“貪心法”,就它讀取每一個符號都盡量包括多的字符,賦值號右邊的式子從左往右讀,第一個字符“x”,然后它會嘗試讀下一個字符看“x+”能不能組成一個符號,若不行,則讀下一個字符,嘗試“++”能不能組成一個符號,顯然可以,然后再接著往下讀“-”,嘗試下一個字符“-”,發現“--”也能組成一個字符。
所以上式它會讀成 ? z = ((x++)--)-y * b / a; 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
int main(){
? ? ? ? int z,x = 5,y = -10,a = 4,b = 2;
? ? ? ? z = x++ - --y * b/a;
? ? ? ? printf("%d\n",z);
? ? ? ? return 0;
}
上面這個式子,在C中其實是理解成 z = ((x++)--)-y * b / a;
所以其實是z = ((5++)--)-(-10)*2/4 = 5-(-5) = 10;
大家不要被題目故意留的空格迷惑了,編譯器是不會理那些空格的,它看起來就是z=x++---y*b/a,而C語言讀取符號時的詞法分析遵循的規則叫“貪心法”,就它讀取每一個符號都盡量包括多的字符,賦值號右邊的式子從左往右讀,第一個字符“x”,然后它會嘗試讀下一個字符看“x+”能不能組成一個符號,若不行,則讀下一個字符,嘗試“++”能不能組成一個符號,顯然可以,然后再接著往下讀“-”,嘗試下一個字符“-”,發現“--”也能組成一個字符。
所以上式它會讀成 ? z = ((x++)--)-y * b / a; 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的z = x++ - --y * b/a;的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nanopi NEO Air串口代码
- 下一篇: 传值问题