程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 高質量的C代碼.關於循環遍歷

高質量的C代碼.關於循環遍歷

編輯:關於C語言

未經許可,不的轉載
版權歸屬高雷個人
聯系方式:
email:[email protected]
QQ:   38929568

本系列BLOG僅在以下3個地址發布
http://kome2000.blog.51cto.com/
http://38929568.qzone.qq.com/
http://blog.csdn.net/kome2000

 

關於循環遍歷

1.for循環

常見方式

  1. int i;  
  2. for( i=0; i<N; i++ )  
  3. {  
  4.     //進行操作的代碼 略  

 

 通常用於循環步進的變量為i,j,k,m,n...等但字母變量。從效率和可讀性考慮,循環的層次最好要低於3層。
對於循環結束條件,首選小於,如果需要<=N或者>0等其他條件來做循環結束條件,需要增加注釋說明當時為何要這麼做!


1.1 2層循環也比較常見,比如遍歷一個二維數組

 

  1. int array[row][col];  //row為行數常量,col為列數常量  
  2. int i,j;  
  3. for( i=0; i<row; i++ )  
  4. {  
  5.     for( j=0; j<col; j++ )  
  6.     {  
  7.         //數組訪問形式array[i][j],  
  8.         //進行操作的代碼 略  
  9.     }  


 內層循環一定要是數組的第一維,因為我們知道數組是連續的內存空間,任何維數的數組都可以改寫成1維數組,
數組的第一維一定是連續的內存地址,所以計算機在訪問連續的地址時速度快,
另外先處理數組的第一維也是比較直觀,更能夠讓閱讀代碼的人理解的方式。

1.2 如果第一維數比較少,比如1000個坐標的數組
可以定義成
int pos[1000][2];//其中第一維僅有2個值,下標為0的時候表示X坐標,小標為1時表示Y坐標
這樣的數組可以用1層循環來遍歷,這樣可以減少CPU跨切循環層次的次數。
例如
 

  1. for( i=0; i<1000; i++ )  
  2. {  
  3.     //pos[i][0];  
  4.     //pos[i][1];//分別對下標0.1...進行處理  
  5.     //進行操作的代碼 略  

 

 

 

本文出自 “鍵碼視窗” 博客,謝絕轉載!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved