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