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

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::
數組和指針這東西有時還是比較麻煩:
指針是很危險的,但同時也是非常強大的,就如一個高手拿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>
            久久视频国产精品免费视频在线 | 亚洲桃色在线一区| 国产精品成人久久久久| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲黄色三级| 亚洲欧美中文日韩v在线观看| 亚洲电影毛片| 国产亚洲精品久久久久动| 欧美日韩一区二区三区在线 | 国产精品乱码人人做人人爱| 久久精品国产精品亚洲| 午夜精品久久久久久久久久久久久 | 亚洲国产裸拍裸体视频在线观看乱了| 久久av老司机精品网站导航| 亚洲香蕉在线观看| 99国产欧美久久久精品| 亚洲人成在线观看| 亚洲免费观看| av72成人在线| 亚洲一区二区三区视频| 亚洲综合视频一区| 亚洲在线不卡| 久久精品毛片| 免费亚洲一区二区| 欧美另类一区| 国产美女精品免费电影| 国产综合色在线| 亚洲成色www久久网站| 亚洲精品一级| 性欧美大战久久久久久久免费观看| 亚洲欧美日韩在线播放| 久久久久在线| 亚洲精品国久久99热| 欧美一区二区三区男人的天堂 | 国产欧美日韩综合| 国产亚洲视频在线| 在线观看国产精品网站| 亚洲精品久久久久中文字幕欢迎你 | 日韩亚洲精品视频| 亚洲一二三级电影| 久久久久久一区二区三区| 欧美激情2020午夜免费观看| 国产精品二区影院| 在线精品在线| 亚洲综合色网站| 免费欧美视频| 中日韩男男gay无套| 久久综合成人精品亚洲另类欧美| 久久一二三四| 亚洲小视频在线观看| 欧美影院在线| 欧美视频在线免费看| 韩日在线一区| 亚洲一区二区精品视频| 免费高清在线一区| 亚洲午夜一区二区三区| 欧美xx视频| 欧美日本不卡高清| 国产日韩欧美亚洲一区| 在线精品在线| 亚洲人成网在线播放| 欧美在线国产| 久热爱精品视频线路一| 亚洲一区二区三区激情| 欧美在线看片| 欧美视频在线观看一区| 国产精品尤物福利片在线观看| 亚洲精品小视频| 亚洲电影毛片| 蜜臀va亚洲va欧美va天堂| 欧美性开放视频| 99精品视频网| 亚洲精品一区在线观看| 久久久久一本一区二区青青蜜月| 国产精品一区二区久久国产| 99国内精品久久久久久久软件| 久热精品在线视频| 亚洲日本激情| 久久久精品欧美丰满| 国产亚洲aⅴaaaaaa毛片| 香蕉免费一区二区三区在线观看| 久久久91精品国产一区二区三区| 亚洲精品一区二区三区婷婷月| 午夜精品在线视频| 欧美日韩在线影院| 欧美成人午夜激情视频| 久久精品国产一区二区电影| 一区二区三区久久| 久久久久久久波多野高潮日日 | 一区二区三区av| 国产精品九九| 久久综合久久久| 久久精品色图| 一本色道婷婷久久欧美| 亚洲美女精品一区| 亚洲午夜日本在线观看| 国产精品日本一区二区| 西西裸体人体做爰大胆久久久| 久久精精品视频| 亚洲国产成人精品久久| 亚洲成人在线视频播放 | 欧美国产丝袜视频| 亚洲美女在线一区| 亚洲视频一区在线| 国产一区二区高清视频| 免费人成精品欧美精品| 欧美国产精品人人做人人爱| 99精品热视频只有精品10| 一区二区三区黄色| 国产主播精品在线| 欧美激情视频在线免费观看 欧美视频免费一| 久久午夜精品| 妖精成人www高清在线观看| av不卡在线看| 国产在线精品二区| 欧美激情亚洲综合一区| 欧美性猛交xxxx乱大交蜜桃| 久久亚洲综合色| 欧美国产日韩一区| 欧美一区1区三区3区公司| 久久综合伊人77777麻豆| 亚洲色图在线视频| 欧美一区三区三区高中清蜜桃| 尤物yw午夜国产精品视频| 亚洲国产日韩在线| 国产欧美精品日韩| 亚洲国产精品传媒在线观看 | 一区二区三区精品视频| 樱花yy私人影院亚洲| 老司机一区二区三区| 欧美特黄一级大片| 欧美国产精品久久| 国产伦精品一区二区三区高清版| 麻豆久久婷婷| 免费高清在线一区| 亚洲精品自在久久| 久久国产精品99国产精| 亚洲一区二区精品| 欧美极品aⅴ影院| 久久久久免费视频| 久久久99国产精品免费| 男女精品网站| 久久久久久久97| 国产午夜精品一区二区三区欧美 | 在线观看日韩一区| 久久久久久久精| 午夜亚洲一区| 国产农村妇女毛片精品久久麻豆 | 玖玖玖免费嫩草在线影院一区| 亚洲一区二区三区久久| 免费日韩成人| 免费不卡在线观看av| 国产精品一卡二卡| 日韩亚洲精品在线| 日韩一区二区免费高清| 美女视频黄a大片欧美| 久久久成人精品| 国产精品一区二区你懂的| 一区二区电影免费观看| 这里只有精品在线播放| 欧美日韩高清不卡| 亚洲精品在线视频| 一区二区久久久久| 欧美三级精品| 亚洲深夜福利在线| 亚洲已满18点击进入久久| 欧美午夜免费影院| 亚洲一区二区三区午夜| 欧美一区二区三区免费视频| 国产伦精品一区二区三区在线观看 | 国产精品日韩欧美| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美久久久久中文字幕| 亚洲精品裸体| 亚洲欧美日本日韩| 国产精品亚洲一区| 西瓜成人精品人成网站| 牛牛精品成人免费视频| 亚洲国产精品电影在线观看| 欧美人牲a欧美精品| 99精品视频免费全部在线| 亚洲免费在线| 国产三级欧美三级日产三级99| 欧美一级成年大片在线观看| 久久在线视频| 亚洲区在线播放| 国产精品高潮呻吟久久av无限| 亚洲影院免费观看| 欧美jizz19性欧美| 亚洲一区国产视频| 国产视频亚洲精品| 久色成人在线| 亚洲性视频网站| 欧美日韩亚洲三区| 99精品欧美一区二区三区| 亚洲视频免费看| 国产一区91精品张津瑜| 欧美国产日韩一二三区| 久久久久久香蕉网| 亚洲精品四区|