200813_C指针
生活随笔
收集整理的這篇文章主要介紹了
200813_C指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、學習的知識點
- 指針
- 指針高級
- 數組指針
- 結構體指針
- 二、上課沒有聽懂或者沒有理解的地方
- 三、當天學習的收獲
- 四、作業的思路、不會的地方
- 五、其他需要反饋的問題
- 六、心得體會
一、學習的知識點
指針
指針高級
數組指針
{ int num[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int i=0,j=0;int (*p)[4]=num; //指向二維數組的指針---行指針(數組指針),每行4個元素,不可省int *p[4]; //指針數組 指針類型的數組,數組里面保存的是int類型的指針,占用4*4-16個字節空間/*行指針-本質是指針,使用在二維數組作為函數參數的時候,行指針+1,偏移1行指針數組-本質是數組,通常可以應用在二維字符數組上,保存多個字符串*/char *stu[20]={"lili","rose","lucy"}; //指針數組,保存三個字符串在常量區對應的地址puts(stu[1]); //訪問到rosep++; //偏移行//訪問二維數組的元素printf("%d\n",num[1][1]); //下標法for(i=0;i<3;i++){for(j=0;j<4,j++){printf("%d\t",num[i][j]); //下標法printf("%d\t",*(num[i]+j)); //每一行的首地址偏移,取內容printf("%d\t",*(*(num+i)+j)); //printf("%d\t",*(num+i)[j]); //*(num+i)[j]->*(p)[j]printf("%d\t",*(&num[0][0]+4*i+j)); //num &num[0][0]+4*i+j}printf("\n");}printArry(num,3); //函數調用 } //int p[3][4] int p[][4] int (*p)[4] 二維數組形參方式 void printArry(int num[][4],int row) {int i=0,j=0;for(i=0;i<row;i++){for(j=0;j<4,j++){//printf("%d\t",num[i][j]); //下標法//printf("%d\t",*(num[i]+j)); //每一行的首地址偏移,取內容//printf("%d\t",*(*(num+i)+j)); //printf("%d\t",*(num+i)[j]); //*(num+i)[j]->*(p)[j]//printf("%d\t",*(&num[0][0]+4*i+j)); //num &num[0][0]+4*i+j}printf("\n");} }結構體指針
保存的是結構體變量對應的地址
typedef struct staff { }STAFF_T;STAFF_T user={1001,"admin","123456"}; STAFF_T *puser=NULL;puser=&user;//結構體指針變量訪問數據成員的格式:指針變量名+->變量名 printf("%s\n",puser->name);二、上課沒有聽懂或者沒有理解的地方
無
三、當天學習的收獲
學習了訪問二維數組元素的幾種方法
四、作業的思路、不會的地方
使用結構體指針作為形參
五、其他需要反饋的問題
無
六、心得體會
數組指針和指針數組比較難理解消化,多學多練。
總結
以上是生活随笔為你收集整理的200813_C指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 200811C指针
- 下一篇: 200815-C指针高级和链表