工作以後,一直使用C++,也做過Objective C,各種類的方法封裝得很好,使用很簡單,今天偶爾翻看一下 嚴蔚敏 的 《資料結構》,第一個程式demo就看了半天,一是由於demo的變數命名問題,全是i,m,n,p什麼的;二就是對指標的使用生疏了。現在把改寫的demo記錄一下。。。

   1: #include <stdio.h>

   2: #include <stdlib.h>

   3:  

   4: void Invert(int *pArray, int nCount) {

   5:     int *pHead = pArray;

   6:     int *pTail = pArray + nCount - 1;

   7:     int iTemp = 0;

   8:     while(pHead < pTail) {

   9:         iTemp = *pTail;

  10:         *pTail = *pHead;

  11:         *pHead = iTemp;

  12:         pHead++;

  13:         pTail--;

  14:     }

  15:     pHead = NULL;

  16:     pTail = NULL;

  17: } 

  18:  

  19: int main(int argc, char *argv[]) {

  20:     int nCount = 0;

  21:     printf("\nEnter nCount: ");

  22:     scanf("%d", &nCount);

  23:     int *pArray = malloc(sizeof(int) * nCount);

  24:     int *pCounter = pArray;

  25:     printf("\nInput the original array:\n");

  26:     int i = 0;

  27:     for(; i<nCount; i++) {

  28:         scanf("%d", pCounter++);

  29:     }

  30:     printf("\nThe original array is: ");

  31:     pCounter = pArray;

  32:     for(i=0; i<nCount; i++) {

  33:         printf("%d ", *(pCounter++));

  34:     }

  35:     Invert(pArray, nCount);

  36:     printf("\nThe inverted array is: ");

  37:     for(i=0; i<nCount; i++) {

  38:         printf("%d ", *(pArray++));

  39:     }

  40:     pCounter = NULL;

  41:     free(pArray);

  42:     pArray = NULL;

  43:     return 0;

  44: }