青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::
數組和指針這東西有時還是比較麻煩:
指針是很危險的,但同時也是非常強大的,就如一個高手拿AWP和一個菜鳥拿AWP一樣,一個是最恐怖的魔鬼,另一個卻是被虐的對象。
const int *p 和 int const *p 指的是數組的內容不能改變。
int * const p 指的是指針名不能改變。誰在 const 后面,誰就是不變的。
 
二維數組動態分配:
int **p;
int row = 5;
int column = 10;
p = new int*[row];
for (int i=0; i<row; i++) {
        p[i] = new int[column];
}
 
指針即是地址(0xf0765fea),是無符號整數,占用四個字節,32位。怎么判斷一個指針所指向的類型?
去掉一個 * 和變量名后所留下的部分就是指針所指向的類型。
如 int *p; 去掉一個 * 和變量名 p 后就只有 int 了,所以 p 指向 int 的整形數。
float **p; 則 p 指向的類型是 float *,即 float 類型的指針,或 float 類型的地址,也即數組。
那么在給 p 分配內存時,p = new float*[23],即指向一些
在C或C++中有一個很好的地方是,即使你定義的變量是指針,但可與用訪問數組下標的方法來訪問指針所指向的數據;int **p;   *(*(p+i) + j) 等同于 p[i][j],使用數組下標來訪問更直觀。
 
使用變量來聲明數組的長度,使程序更具有健壯性. int length = 10; int array[length].
給定一個二維數組和一個位置數loc,怎么確定這個數對應數組中的那一個位置?
array[loc / column][loc % column]
 
當定義一個數組時,但沒有初始化,這時數組的內容是還是原來內存中的值。
 
void * 的使用
可以把任何類型的指針直接傳給 void* 的變量。
但是反過來,卻不能直接把 void* 傳給其他類型指針,必須明確的進行強制類型轉換
int *pi;
void * pv = pi; // Ok
float *pf = (float*)pv; // Ok
double *pd = pv; // Error
 
char *str = (char*)malloc(sizeof(char) * number);
malloc分配一段內存,返回這段內存的首地址,其值為 void *,這樣,不管什么類型的指針都可以用這個函數來進行內存分配,void * 實現了相當于 C++ 中的函數模板的功能,實現了在C中的多態。各種類型說明符,就是為了說明每次進行存取的時候操作多少字節。
 
數組名是這個數組的首地址,與他的第一個元素的地址是指向同一個地址,但數組卻是一個常量,只能進行右值計算,是不可改變的。指針變量也是指向地址,但指針變量是可以改變的,可以進行右值計算,也可以左值計算。
 
字符數組的結束符號是'\0',其整型值是 0,即 NULL
雖然這樣,但在OpenGL中,如在 glGenTextures 的調用中,經常用的是第一個元素的地址,而不是用數組名。
 
用數組實現折半查找:
在最壞的情況下,1024個元素只需要進行10查找,但查找前要先排序
返回要查找的數在數組的下標,當不在數組中是,返回 -1,因為數組下標是從0開始的。
int binarySearch(const int *p, const int g, int low, int height) {
         int mid;
 
         while (low <= height) {
                 mid = (low + height) / 2;
                 if (g < p[mid]) {
                          height = mid - 1;
                 } else if (g > p[mid]) {
                          low = mid + 1;
                 } else {
                          return mid;
                 }
          }
 
          return -1;
}
 
快速排序:
void quickSort(int *p, int low, int height) {
          if (low >= height) {
                  return;
          }
 
          const int l = low;
          const int h = height;
          int ref = p[(low + height)/2];
          int temp = 0;
 
          // 如果沒有等于這個條件,那么如 3, 2, 1時,就會造成下一次排序為1,2 ; 2, 3,多出來一個 2
          while (low <= height) {
                    // 找到大于等于 ref 的數,這里很重要,如果用 <= 的話,即找到比 ref 大的數,
                  // 可能會造成數組越界
                    while (p[low] < ref) { 
                              low++;
                    }  
                    while (p[height] > ref) {
                              height--;
                    }
  
                    // 這個條件是必須的,否則不能正確排序, l1,3,4,2,2,3,h5, 3為ref
                    // 第一次排序后,1, 3, l4, 2, h2, 3, 5
                    // 第二次排序后,1, 3, 2, lh2, 4, 3, 5,這時還可以進行下一次排序
                    // 第三次排序,h仍在2處,但l要找大于等于他的數,即1, 3, 2, h2, l4, 3, 5
                    // 如果沒有這個條件,那么就要進行交換,1, 3, h2, 4, 2, l3, 5,有錯誤發生
                    if (low <= height) {
                              temp = p[low];
                              p[low] = p[height];
                              p[height] = temp;
                              low++;
                              height--;
                    }
  
          }
 
          quickSort(p, low, h);
          quickSort(p, l, height);
          // 第一次壓入(low, height)
     // 從棧中取出一對(low, height)進行每個片段的排序
          // 每排完一遍后,即上面的while執行完一次,壓入(low,h)和(l,height)
     // 利用棧消除遞歸
 
          return;
}
 
排序一般當元素個數大于三十個時利用快速排序的速度比較快,當元素個數小于三十個時,利用選擇排序比較好,所以一般都是選擇排序和快速排序結合起來使用。
posted on 2010-12-17 17:30 逛奔的蝸牛 閱讀(582) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产一区二区三区高清播放| 久久久一本精品99久久精品66| 亚洲午夜成aⅴ人片| 久久久久久久久久久久久9999| 精品成人国产在线观看男人呻吟| 欧美日韩亚洲成人| 欧美一区二区性| 亚洲日本无吗高清不卡| 久久九九精品99国产精品| 亚洲精品久久久久久下一站| 欧美不卡激情三级在线观看| 久久超碰97人人做人人爱| 久久在线视频在线| 夜夜爽www精品| 亚洲国产影院| 99在线精品观看| 亚洲欧美在线磁力| 久久久噜噜噜| 欧美精品在线一区| 国产亚洲免费的视频看| 亚洲国产高清视频| 亚洲网站在线观看| 久久香蕉国产线看观看av| 亚洲韩国一区二区三区| 亚洲综合第一| 欧美国产综合| 国产亚洲综合在线| 99视频日韩| 久久久精品tv| 99国内精品久久久久久久软件| 午夜一区在线| 欧美伦理在线观看| 怡红院精品视频| 亚洲最黄网站| 欧美顶级艳妇交换群宴| 亚洲免费人成在线视频观看| 欧美91大片| 狠狠入ady亚洲精品| 亚洲视频第一页| 欧美成人精品影院| 亚洲欧美日韩国产一区二区| 欧美人成免费网站| 亚洲国产va精品久久久不卡综合| 欧美一区二区观看视频| 亚洲日本在线观看| 久久日韩精品| 国模私拍一区二区三区| 亚洲欧美综合另类中字| 91久久精品一区| 蜜臀久久久99精品久久久久久| 日韩一级片网址| 免费一级欧美片在线观看| 亚洲视频专区在线| 欧美激情区在线播放| 伊人久久噜噜噜躁狠狠躁| 欧美一区二区三区视频| 亚洲精品欧洲| 欧美高潮视频| 亚洲少妇诱惑| 伊人婷婷欧美激情| 性18欧美另类| 亚洲免费福利视频| 久久精品成人| 亚洲视频999| 欧美日精品一区视频| 91久久在线播放| 欧美大片专区| 欧美成人在线免费观看| 亚洲黄色一区| 亚洲成在线观看| 欧美77777| 夜夜精品视频一区二区| 日韩视频亚洲视频| 国产精品av一区二区| 亚洲欧美日韩一区二区三区在线 | 欧美精品一区二区蜜臀亚洲| 亚洲黄色有码视频| 亚洲第一搞黄网站| 欧美激情欧美狂野欧美精品| 99一区二区| 在线亚洲国产精品网站| 国产精品乱码人人做人人爱| 香港久久久电影| 久久精品免视看| 亚洲精品欧美日韩专区| 亚洲免费观看高清在线观看| 欧美午夜激情小视频| 久久国产精品久久久久久电车 | 亚洲欧美国产精品桃花| 国产一区av在线| 欧美激情一区二区三区全黄| 欧美四级电影网站| 久久麻豆一区二区| 欧美激情一区二区三区高清视频| 一区二区三区视频观看| 亚洲在线一区二区三区| 在线欧美日韩精品| 在线亚洲+欧美+日本专区| 在线免费日韩片| 亚洲在线成人| 91久久精品一区二区别| 午夜精品成人在线| 性欧美精品高清| 久久久福利视频| 韩国一区二区三区在线观看| 亚洲欧美久久久| 久久精品中文字幕免费mv| 欧美日韩日日骚| 午夜精品一区二区三区在线| 久热精品在线视频| 亚洲精品自在久久| 制服丝袜亚洲播放| 亚洲激情偷拍| 日韩天堂在线观看| 国内精品久久久久影院优| 亚洲精品视频在线看| 红桃视频欧美| 亚洲欧美日韩在线观看a三区| 亚洲国产欧美精品| 欧美一区二区三区啪啪| 一区二区三欧美| 久久一区国产| 久久国产精品久久国产精品 | 欧美一级午夜免费电影| 99精品99| 欧美不卡视频一区| 久久伊人亚洲| 国产一区深夜福利| 亚洲综合成人婷婷小说| 亚洲一二区在线| 欧美日韩视频| 亚洲精品免费在线观看| 91久久精品美女| 美女视频黄a大片欧美| 久久天天综合| 狠狠久久亚洲欧美专区| 久久精品国产77777蜜臀| 久久国产毛片| 黑人中文字幕一区二区三区| 欧美一级大片在线观看| 欧美亚洲在线观看| 国产欧美婷婷中文| 午夜精品久久久久久久99水蜜桃| 亚洲综合不卡| 国产日韩精品一区二区三区在线 | 亚洲性视频网站| 午夜亚洲一区| 国产亚洲欧美色| 久久综合色一综合色88| 模特精品裸拍一区| 亚洲国产日韩欧美在线99| 理论片一区二区在线| 欧美国产日韩xxxxx| 亚洲精品国产视频| 欧美日本一区二区三区| 欧美一区二区三区婷婷月色 | 亚洲国产日韩欧美在线图片| 国产欧美一区二区三区在线看蜜臀 | 99视频精品免费观看| 国产欧美日韩精品丝袜高跟鞋| 夜夜精品视频| 国产亚洲欧美另类中文| 日韩视频一区二区三区在线播放免费观看 | 欧美日韩系列| 亚洲激情网站免费观看| 欧美电影美腿模特1979在线看 | 亚洲精品日韩激情在线电影 | 99精品福利视频| 亚洲欧美日韩一区在线观看| 亚洲国产日韩一级| 欧美另类69精品久久久久9999| 欧美 日韩 国产 一区| 农夫在线精品视频免费观看| 亚洲精品影视| 国产精品户外野外| 欧美va亚洲va香蕉在线| 欧美成人免费视频| 浪潮色综合久久天堂| 亚洲欧洲视频| 老鸭窝亚洲一区二区三区| 精品不卡一区| 欧美a级片网站| 欧美二区乱c少妇| 在线亚洲欧美视频| 久久久亚洲欧洲日产国码αv| 永久久久久久| 国产精品视频yy9299一区| 猛男gaygay欧美视频| 亚洲综合欧美日韩| 亚洲片在线观看| 在线看成人片| 亚洲伊人久久综合| 1769国内精品视频在线播放| 欧美日韩伦理在线| 久久精品人人做人人爽| 日韩视频一区二区| 亚洲高清av| 欧美色精品天天在线观看视频| 亚洲午夜羞羞片| 日韩一级片网址|