printf的運算順序是從右到左,還是從左到右,還是其他的。要看具體的編譯器而定,比如下面的乙個例子:
int i= 5;
printf("%d,%d/n",++i,++i);
printf("%d,%d/n",++i, i);
printf("%d,%d/n",i, ++i);
在vc中的執行結果是:
7,68,7
9,9 ;說明執行順序是從右到左的。
而在soucre insight中的執行結果(linux gcc編譯)是:
7,78,8
9,9 ;說明是把相同的引數結果都算出來了,才一起輸出,沒有一定的規律。
所以使用時還是要特別注意的,不過好像一般也不會碰到有這樣的用法。
printf函式輸出順序的理解
注意 筆者並未研究printf的實現原始碼,僅從呼叫結果分析該問題,如有理解不當之處請指正。最近使用printf 函式碰到了乙個有趣的現象。int j 0 printf x x x x n j j j j result 3 2 1 0 原本以為輸出結果是 0 1 2 3 沒想到結果是 3 2 1 0...
printf函式的求值順序問題
學了這麼久的c語言,沒想到對c語言中常見的printf函式還不是很了解。有以下程式段 設int arr int ptr arr ptr 123 printf d,d ptr,ptr 答案為什麼是 8,8 這是一道華為面試題。這個題考的關鍵就是printf的運算順序。printf的引數,函式print...
printf函式引數的執行順序
今天在做提的時候,遇到了一件奇怪的事,本是一件簡單的題 原題大致意思就是二分查詢某個值,然後輸出比較次數 下面看看我的 include include int data 1000 int k int binarysearch int l,int r,int aim int main int aim ...