亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS階段學習第八天筆記(指針)

2019-11-14 18:46:48
字體:
來源:轉載
供稿:網友

iOS學習(C語言)知識點整理

一、指針

1)概念:存儲變量的地址的一個變量。

2) 數據存儲類型分析

   1、text (代碼段) :存儲二進制的可執行代碼

   2、data(初始化的數據段) 存儲初始化的全局變量以及初始化的static修飾的變量,分為只讀數據段

     (如:字符串常量,整型常量)及可讀可寫數據段,靜態存儲。

   3、data(未初始化的數據段)存儲未初始化的全局變量及未初始化的static修飾的變量,靜態存儲。

   4、heap(堆區) 內存使用需要手動申請,手動釋放,空間非常大,通常存儲大容量的數據,執行效率比較低

       使用比較麻煩,動態存儲。

 5、stack(棧區)內存空間比較小,函數調用局部變量開辟都是棧上,使用效率非常高。

3)取地址符 “&”,間接尋址符 “ * ”,“%p” 打印地址的格式字符

4)指針標示符:* 例如: int *p   表示定義了一個指針p,*是指針標示,int表示p指向的類型(里面存儲的是int型變量的地址)

5)各種類型的指針,在內存中擁有的空間都是一樣的,64位系統下面都是8個字節(32位是4個字節)。 

6)指針運算 指針對象 ++,表示指向地址向后偏移,偏移量為sizeof(指向的類型);- -則表示向前偏移。

7)野指針:未初始化值的指針,里面是個隨機地址,可以任意修改該地址對應的值,會給系統造成不可控制的影響。

8)空指針 p=NULL=0; 0是非法地址,0地址不可賦值,不可讀寫。

9)指針的優點

   1、為函數提供修改調用變量的靈活手段

   2、可以使函數有多個返回值

   3、可以改善某些子程序的效率 ,在傳遞數據時,如果數據塊較大(比如數據緩沖區域或比較大的結構),這時就可使用指針傳遞地址而

        不是實際數據,即可提 高傳輸速度,又節省大量內存。

  4、為動態數據結構(如 二叉樹、鏈表)提供支持。

10)void* 指針,通配指針,可是指向任意類型。

11)指針的應用,函數中指針作為函數的入參。

12)int *a;  指針變量,指向int型數據。

13)指針數組  即指向一個數組類型的指針   

       例如: int *p[4] : 表示4個指向int的指針.每個指針都是獨立的,沒有關系; p[i] 是一個 int 型指針

       p[i]=*(p+i)

 實例代碼:

 1 int add(int *a[],int len1,int len2) 2 { 3     int sum = 0; 4     for(int i=0;i<len1;i++){ 5         //a[i]第i個指針=第i個一維數組 6         for(int j=0;j<len2;j++){ 7             sum = sum + *(a[i]+j); 8         } 9     }10     return sum;11 }12 13 int main()14 {16     int a[4][3]={{1,2,3},{4,5,6}, {7,8,9},{10,11,12}};17     int *p[4];//指針數組,沒初始化不能用,野指針組18     for(int i=0;i<4;i++){19         p[i]=a[i];//a[i]表示第i行的一個數組20     }22    int sum = add(p,4,3);23    PRintf("sum = %d/n",sum);24    return 0;25 }

14)數組指針 

實例代碼:

 1 int add(int(*p)[3],int len) 2 { 3     int sum = 0; 4     for(int i=0;i<len;i++){ 5         //p+i 表示指向第i個數組 *(p+i)=a[i] 6         for(int j=0;j<3;j++){ 7         //a[i][j] = *(a[i]+j) = *(*(p+i)+j) 8             sum = sum + *(*(p+i)+j); 9         }10     }11 12     return sum;13 }14 15 int main()16 {17     int a[4][3]={{1,2,3},{4,5,6}, {7,8,9},{10,11,12}};19     //a[0],a[1],a[2],a[3]:4個數組都有3個元素21     int(*p)[3];//可以指向一個有3個元素的數組23     //p = &(a[0]);//&a[0] = &(*(a+0))25     p = a;//由上面的那個式子化簡27     int sum =add(a, 4);//既然p=a,就可以這么寫29     printf("sum %d /n",sum);31  }

15)函數指針  int (*pfunc)(int,int); 定義了一個函數指針,必須要指向 int XXX(int a,int b) 這種樣式的函數

 實例代碼:

 1 int add(int a,int b) 2 { 3       return a+b; 4 } 5  6 int main(){ 7     int a = 10; 8     int b = 20; 9     int sum;10     int (*pfunc)(int,int);11 12     pfunc = add;//函數名相當于一個指向其函數入口指針常量14     sum = pfunc(a,b);16     printf("sum = %d/n",sum);18     return 0;20 }

16) 使用指針 實現函數回調

 實現代碼:

 1  void print_hello() 2 { 3     printf("hello world/n"); 4 } 5  6  void print_date() 7 { 8     time_t rawtime;10     struct tm * timeinfo;12     time ( &rawtime );14     //獲取系統本地時間 需要引用 time頭文件 ,#include <time.h>16     timeinfo = localtime ( &rawtime );18      printf ( "%4d-%02d-%02d %02d:%02d:%02d/n",1900+(*timeinfo).tm_year, 1+(*timeinfo).tm_mon,20             (*timeinfo).tm_mday,(*timeinfo).tm_hour,(*timeinfo).tm_min,(*timeinfo).tm_sec);22 }23 24 // void(*pfunc)()25 void print_all(void(*pfunc)(),int count)26 {27     for(int i=0;i<count;i++){28         pfunc();29     }31 }33  34 int main()35 {37     print_all(print_date,4);//循環輸出4次39     print_all(print_hello,1);41     return 0;42 }

17)使用指針實現遞歸算法

 實現代碼:

void sort_array(int *a,int len){   //冒泡排序   int temp;   for(int i=0;i<len-1;i++){         for(int j=0;j<len-1-i;j++){         if(*(a+j)>*(a+j+1))            {               temp = *(a+j);               *(a+j) = *(a+j+1);              *(a+j+1) = temp;             }         }     }}
int main(){ int a[5]={1,20,30,4,5}; int *p; p = a; //傳遞數組:2種形式 數組或者指針 print_array(a, 5); return 0;}

 

18)二級指針 指向指針的指針。

 實例代碼:

 1 void swap(int **p,int **q) 2 { 4     int temp; 6     temp = **p; 8     **p = **q;10     **q = temp;12 }13  15 int main()16 {18     int a = 10;20     int b = 20;22     int *p = &a;//p是一個指針,指向int型24     int **q;//q是一個指針,指向 int *型,int* 型就是指向int的指針類型,p就是這樣一個類型26     q = &p;//*q=*(&p)=p28     printf("%d/n",**q);//*q=p,**q=*p=a30     int *p_b = &b;32     int **pp_b = &p_b;34     swap(q,pp_b);36     printf("a=%d,b=%d/n",a,b);38     return 0;39 }

19)const 修飾符,只讀  表現形式: const 數據類型 變量名 ,const 直接修飾的變量不可以改變,但加了*的變量可修改。

 實例代碼:

 1 int main() 2 { 4     int value1 = 10; 6     int value2 = 20; 8     const int a = 100;10     printf("a=%d/n",a);12     a = 20;//const修飾的變量不能修改14     const int *p = &value1;16     p = &value2;18     //*p = 100;//*p不可以修改,p可以改20     int const *m = &value1;22     m = &value2;24     //*m = 10;//*m不可以修改,m可以改26     int *const n;//n不可以改,*n可以改28     const int *const q//q不可以改,*q不可以改30     const int *const m,*n;//m,*m不可以改,n可以改32     *n =100;//*n也不可以改34     const int *const m, *const n;//m,*m,n不可以改36     *n = 100;//*n也不可以改38     int *const m, *const n;//m,n不可以改,*m,*n可以改,40     *n = 100;41 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久77777| 欧美极品在线视频| 欧美日韩亚洲精品一区二区三区| 国产国产精品人在线视| 91网在线免费观看| 中文字幕欧美精品在线| 国产网站欧美日韩免费精品在线观看| 精品亚洲一区二区三区四区五区| 日韩欧美国产中文字幕| 欧美激情视频网址| 欧美日韩精品在线观看| 亚洲人线精品午夜| 伊是香蕉大人久久| 国产在线播放91| 国产精品国模在线| 亚洲第一黄色网| 国产在线视频一区| 国产精品美女免费| 久久免费视频网站| 国产在线观看精品| 欧美日韩综合视频网址| 亚洲第一国产精品| 中文字幕日韩欧美在线| 欧美另类99xxxxx| 国产精品你懂得| 亚洲精品一区av在线播放| 久久久精品久久久久| 成人h猎奇视频网站| 在线精品国产成人综合| 久久久噜久噜久久综合| 国产精品xxxxx| 成人h猎奇视频网站| 欧美日韩亚洲一区二| 57pao国产成人免费| 欧美日韩国产丝袜另类| 久久影视电视剧凤归四时歌| 亚洲激情在线视频| 91精品视频在线播放| 欧美激情视频网| 日韩在线观看免费网站| 美女精品久久久| 日本中文字幕不卡免费| 亚洲国产精品一区二区久| 国产精品96久久久久久又黄又硬| 正在播放国产一区| 国产丝袜一区视频在线观看| 久久精品一本久久99精品| 最近2019年好看中文字幕视频| www.99久久热国产日韩欧美.com| 日韩专区在线观看| 国产精品中文字幕久久久| 欧美亚洲成人网| 国产日韩欧美在线看| 2020欧美日韩在线视频| 欧美性生交大片免费| 亚洲国产又黄又爽女人高潮的| 2019国产精品自在线拍国产不卡| 这里只有精品丝袜| 亚洲精品一区二三区不卡| 国产成+人+综合+亚洲欧美丁香花| 国产精品久久久999| 亚洲欧美国产日韩天堂区| 国产精品自产拍在线观看中文| 国产精品久久久久免费a∨大胸| 一个人www欧美| 中文字幕不卡在线视频极品| 国产精品久久久久av免费| 狠狠久久五月精品中文字幕| 欧美乱妇高清无乱码| 国产脚交av在线一区二区| 国产剧情久久久久久| 欧美精品在线视频观看| 精品国产91久久久久久老师| 欧美日韩亚洲精品内裤| 成人午夜一级二级三级| 亚洲最新在线视频| 精品亚洲精品福利线在观看| 一二美女精品欧洲| 日韩大片在线观看视频| 国产精品久久久999| 成人h视频在线| 久久中文字幕在线视频| 国产裸体写真av一区二区| 国产成人欧美在线观看| 色偷偷偷综合中文字幕;dd| 久久99久久99精品中文字幕| 国产精品美女www爽爽爽视频| 成人国产在线视频| 色www亚洲国产张柏芝| 国产欧美一区二区三区在线| 亚洲精品一区二区三区婷婷月| 久久久久亚洲精品| 久久久久国产精品免费| 国产深夜精品福利| 91人人爽人人爽人人精88v| 欧美激情视频一区| 九九久久久久99精品| 97视频在线观看播放| 日本精品va在线观看| 成人信息集中地欧美| 国产精品海角社区在线观看| 国产丝袜一区二区三区免费视频| 欧美巨猛xxxx猛交黑人97人| 国产日韩专区在线| 中文字幕亚洲一区二区三区| 国产精品www| 国产精品一区二区三区毛片淫片| 国产精品欧美久久久| 日本中文字幕久久看| 国产香蕉一区二区三区在线视频| 中文字幕日韩有码| 国语自产在线不卡| 色老头一区二区三区在线观看| 成人黄色大片在线免费观看| 欧美激情videos| 国产精品久久久久国产a级| 欧美大全免费观看电视剧大泉洋| 欧美午夜美女看片| 91久久久久久久久| 欧美专区在线视频| 最近免费中文字幕视频2019| 欧美电影在线免费观看网站| 亚洲精品视频二区| 久久久91精品国产| 国产精品国内视频| 在线视频国产日韩| 久久伊人91精品综合网站| 性欧美激情精品| 久久久久在线观看| 久久久免费高清电视剧观看| 韩剧1988在线观看免费完整版| 91在线无精精品一区二区| 91嫩草在线视频| 一区二区在线视频播放| 亚洲精品www久久久久久广东| 国产综合色香蕉精品| 2019中文字幕在线观看| 中文日韩电影网站| 久久这里只有精品视频首页| 福利视频第一区| 色诱女教师一区二区三区| 欧美一区二粉嫩精品国产一线天| 日韩av免费在线看| 欧美日韩免费观看中文| 久久久精品国产| 欧美精品免费在线| 日韩成人在线视频网站| 2018国产精品视频| 久久精品亚洲一区| 最近2019免费中文字幕视频三| 欧美人在线观看| 中文字幕亚洲无线码a| 国产美女扒开尿口久久久| 伊人伊成久久人综合网小说| 欧美专区在线观看| 一区二区中文字幕| 狠狠躁夜夜躁人人躁婷婷91| 日本在线精品视频| 亚洲免费福利视频| 国产亚洲欧美日韩一区二区| 成人高h视频在线| 91九色视频在线| 亚洲精品ady| 黑人巨大精品欧美一区二区一视频|