c語言提高

2021-08-21 04:55:25 字數 829 閱讀 5566

當在大學期間學習了c語言以後發現自己的真的對程式設計只是停留在初級階段,沒有理解程式設計的思維或者懂自己的腦子去思考解決問題的能力。這就是大學缺少思考帶來的結果。當面試幾次發現,自己的能力真的不行的時候,不由得恐懼起來。

先寫乙個面試題目吧,面試公司是一家叫做瑞斯康達科技發展****,題目很簡單,在選擇題中,如下;

#include

int main(void)

int x=10, y=10,i;

for(i=0; x>8; y=++i)

prinrf("%d, %d",x--,y);

看看這題真的很簡單,但是我們還是從最基礎的開始。就從for迴圈開始講解這道題考什麼。

printf()列印的x--和y的值。我們分析一下就知道了。剛開始x的值是10,符合x>8這個判斷的要求。所以第一次列印就是x--,從左往右先把x的值賦值給%d然後才執行--,所以列印出來就是10,而不是9。第二個就是y的列印,for迴圈先執行第一句i=10,然後做判斷是否x>8,如果滿足條件執行迴圈裡面的語句,當迴圈中的語句執行完了以後,再回來執行y=++i這句,那麼我們第一次列印當然不會去改變y=10的值。所以輸出第一次的列印的字元如下:

10,10,

第二次還是判斷x>8是否成立,從第一次執行完後,x變成了x=9了,但是還是滿足條件的,進入迴圈中。由上面解釋的同樣的道理可知,x=9,而此時y已經變了。y先執行++i這句,因為從左往右++的優先順序大於=的優先順序的,故++i後為1,賦值給y後,y變成了1。所以最終第二次迴圈完了以後,最終顯示結果如下:

9, 1

第三次進行判斷,此時x變為8,不符合判斷的條件,因此將推出迴圈,結束程式。但是程式的最終顯示為如下:

10,109,1

C語言提高 03

int a int b 30 int c 120 memset c,0,sizeof c 2.1 陣列首元素位址和陣列的位址是兩個不同的概念 b是首元素位址,b才是整個陣列的位址。b 1 步長為4個位元組 b 1 步長為30 4個位元組 2.2陣列名是首元素的位址,是乙個常量,不能修改 陣列一定義就...

C語言提高 二

六 二級指標三種記憶體模型 1第一種 指標陣列 char myarray include include include void printmyarray11 char myarray,int num void main 列印 num sizeof myarray sizeof myarray 0...

C語言提高03 變數本質

變數概念 既能讀又能寫的記憶體物件,稱為變數 若一旦初始化後不能修改的物件則稱為常量。變數本質 1 程式通過變數來申請和命名記憶體空間 int a 0 2 通過變數名訪問記憶體空間 一段連續 記憶體空間的別名 是乙個門牌號 3,修改變數有幾種方法?1 直接 2 間接記憶體有位址編號,拿到位址編號也可...