C語言 printf函式執行順序

2021-10-22 06:29:14 字數 469 閱讀 6006

printf函式是從左往右讀取,然後將先讀取放到棧底,最後讀取的放在棧頂,處理時候是從棧頂開始的,所有我們看見的結果是,從右邊開始處理的。

我們先看下這段**,c語言經典面試題:

#include

intmain()

;int

*p = arr;*(

++p)+=

100;

printf

("%d %d \n",*

(p),

*(p++))

;return0;

}

輸出結果:13 112

這段**中,指標p向陣列arr的的首位址。

(++p) += 100;指標位址先偏移1後取內容為12,在加上100為112.

在執行printf時,先從最右面執行,**(p++),先取內容後再偏移,此時p的值為112,§時,指標已經偏移到13,所以輸出的值為13

C語言 printf的執行順序

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

printf函式引數的執行順序

今天在做提的時候,遇到了一件奇怪的事,本是一件簡單的題 原題大致意思就是二分查詢某個值,然後輸出比較次數 下面看看我的 include include int data 1000 int k int binarysearch int l,int r,int aim int main int aim ...

C語言printf函式詳解

c語言格式化輸出的函式有printf sprintf和snprintf等,功能略有不同,使用方法大同小異,本文以printf函式為例來介紹它們的用法。int printf const char format,大家看到printf函式的宣告就會有點懵,它引數的寫法與我們之前學到的函式知識不一樣,pri...