<th id="tllh3"><meter id="tllh3"></meter></th><track id="tllh3"></track>
    <cite id="tllh3"><dfn id="tllh3"></dfn></cite>

        <video id="tllh3"></video>

          C語言課件_清華大學譚浩強版c8(new).ppt

          C語言課件_清華大學譚浩強版c8(new).ppt

          1. 1、本文檔共82頁,可閱讀全部內容。
          2. 2、本文檔內容版權歸屬內容提供方,所產生的收益全部歸內容提供方所有。如果您對本文有版權爭議,可選擇認領,認領后既往收益都歸您。
          3. 3、本文檔由用戶上傳,本站不保證質量和數量令人滿意,可能有諸多瑕疵,付費之前,請仔細先通過免費閱讀內容等途徑辨別內容交易風險。如存在嚴重掛羊頭賣狗肉之情形,可聯系本站下載客服投訴處理。
          4. 文檔侵權舉報電話:400-050-0739(電話支持時間:9:00-19:00)。
          C語言課件_清華大學譚浩強版c8(new).ppt

          第八章 指針 C程序設計中使用指針可以: 使程序簡潔、緊湊、高效 有效地表示復雜的數據結構 動態分配內存 得到多于一個的函數返回值 8.1 指針的概念 變量與地址 &與*運算符 含義 直接訪問與間接訪問 直接訪問:按變量地址存取變量值 間接訪問:通過存放變量地址的指針變量去訪問變量 8.2 指針變量 指針變量與其所指向的變量之間的關系 指針變量的初始化 一般形式:[存儲類型] 數據類型 *指針名=初始地址值; 指針變量作為函數參數——地址傳遞 特點:共享內存,“雙向”傳遞 對二維數組 int a[3][4],有 a-----二維數組的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 二維數組的指針變量 指向二維數組元素的指針變量 指向一維數組的指針變量 定義形式: 數據類型 (*指針名)[一維數組維數]; 例 int (*p)[4]; 二維數組的指針作函數參數 用指向變量的指針變量 用指向一維數組的指針變量 用二維數組名 8.4 指針與字符串 字符串表示形式 用字符數組實現 字符串指針作函數參數 字符指針變量與字符數組 char *cp; 與 char str[20]; str由若干元素組成,每個元素放一個字符;而cp中存放字符串首地址 char str[20]; str=“I love China!”; (?) char *cp; cp=“I love China!”; (?) str是地址常量;cp是地址變量 cp接受鍵入字符串時,必須先開辟存儲空間 字符串與數組關系 字符串用一維字符數組存放 字符數組具有一維數組的所有特點 數組名是指向數組首地址的地址常量 數組元素的引用方法可用指針法和下標法 數組名作函數參數是地址傳遞等 區別 存儲格式:字符串結束標志 賦值方式與初始化 輸入輸出方式:%s %c 8.5 指針與函數 函數指針:函數在編譯時被分配的入口地址,用函數名表示 用函數指針變量作函數參數 8.6 返回指針值的函數 函數定義形式: 類型標識符 *函數名(參數表); 例 int *f(int x, int y) 8.7 指針數組和多級指針 用于處理二維數組或多個字符串 指針數組 定義:數組中的元素為指針變量 定義形式:[存儲類型] 數據類型 *數組名[數組長度說明]; 例 int *p[4]; 多級指針 定義: 指向指針的指針 一級指針:指針變量中存放目標變量的地址 命令行參數 命令行:在操作系統狀態下,為執行某個程序而鍵入的一行字符 命令行一般形式:命令名 參數1 參數2………參數n 例 對字符串排序(簡單選擇排序) main() { void sort(char *name[],int n), print(char *name[],int n); char *name[]={"Follow me","BASIC", "Great Wall","FORTRAN","Computer "}; int n=5; sort(name,n); print(name,n); } void sort(char *name[],int n) { char *temp; int i,j,k; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0) k=j; if(k!=i) { temp=name[i]; name[i]=name[k]; name[k]=temp;} } } name[0] name[1] name[2] name[3] name[4] name Great Wall FORTRAN Computer Follow me BASIC k j k j j j i=0 例 對字符串排序(簡單選擇排序) main() { void sort(char *name[],int n), print(char *name[],int n); char *name[]={"Follow me","BASIC", "Great Wall","FORTRAN","Computer "}; i

          您可能關注的文檔

          文檔評論(0)

          學習之家

          相關文檔

          相關課程推薦