函式printf的運算順序

2021-05-21 20:38:07 字數 381 閱讀 6724

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 ...