從一道面試看自增運算

2021-05-22 04:46:52 字數 466 閱讀 5640

#include

#include

#define  adds(a) a*a

int main(void) 

int i=3,j;

j = adds(i++);

printf("%d/n",j);

j = adds(++i);

printf("%d/n",j);

getchar(); 

return 0;    

輸出為 9 49

c語言對於這種執行的處理不是把i++或++i乙個乙個分開算的。

編譯器在遇到i++時 直接將i入棧 之後再增加1

遇到++i時直接將i增加1再入棧

所以adds(i++)是先計算完adds之後再增加i的值的

adds(++i)是先增加i的值 之後再運算的!

當然編譯器不通 結果可能會很不一樣 這是一種很不規範的寫作習慣 只是在面試中需要注意

從一道php面試題說起

面試題目 setcookie name test echo cookies name 請說出程式結果 能說出第一次與第二次的區別者加分 本來一開始我認為不就是設定乙個cookie,然後讀出來的問題,但是被那個後面的提示搞迷惑了從來沒有想過這樣的問題。面試的時候也沒有想出答案,後來在面試官的指點下搞清...

從一道面試題開始說fork

自 http blog.csdn.net yuwenliang archive 2010 01 18 5209239.aspx 給出如下c程式,在linux下使用gcc編譯 1 include stdio.h 2 include sys types.h 3 include unistd.h 4 5 ...

Java面試 從一道題來理解重寫 過載

前言 比較基礎的概念,只是做一道題突然對這一塊的知識記得不是很牢固,一起複習一下。overriding 重寫,覆蓋 覆蓋父類的方法 overloading 過載,以類以統一的方式去處理不同型別資料的一種手段,是多型的一種表現。來看一題 選哪個不會出錯?會做的話就直接跳過這一篇吧 題源 牛客網 cla...