printf函式引數的執行順序

2021-10-23 07:24:54 字數 774 閱讀 4968

今天在做提的時候,遇到了一件奇怪的事,本是一件簡單的題;

原題大致意思就是二分查詢某個值,然後輸出比較次數

下面看看我的**:

#include

#include

int data[

1000];

int k;

int binarysearch

(int l,int r,int aim)

int main()

int aim;

//要查詢的目標數

scanf

("%d"

,&aim)

;printf

("%d\n%d\n"

,binarysearch(0

,n-1

,aim)

,k);

printf

("%d"

,k);

}

測試資料

11513

1921

3756

6475

8088

92100

結果

你只用看兩個k的結果不一樣就行了,因為這就能說明問題;

原因

C語言 printf函式執行順序

printf函式是從左往右讀取,然後將先讀取放到棧底,最後讀取的放在棧頂,處理時候是從棧頂開始的,所有我們看見的結果是,從右邊開始處理的。我們先看下這段 c語言經典面試題 include intmain int p arr p 100 printf d d n p p return0 輸出結果 13...

C語言 printf的執行順序

標籤 c語言 printf 執行順序 by 小威威 include int main void 輸出結果是30而不是31.首先,我們能夠肯定的是輸出的是第乙個引數,但是為什麼不是31呢?難道受到後面引數的影響?其實問題出在我們對printf的執行順序不了解。printf是從右往左執行的,即是prin...

函式printf的運算順序

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 說明執行順序是從右到左的。而在sou...