日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

200815-C指针高级和链表

發布時間:2024/4/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 200815-C指针高级和链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、學習的知識點
    • 作業
    • 指針
    • 鏈表
  • 二、上課沒有聽懂或者沒有理解的地方
  • 三、當天學習的收獲
  • 四、作業的思路、不會的地方
  • 五、其他需要反饋的問題
  • 六、心得體會

一、學習的知識點

作業

  • puts函數:顯示字符串,并把末尾的字符串結束符 “\0”替換成換行符“\n”字符輸出
  • 下標越界:char s[5]={“ABCDE”}; char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’};
  • 野指針:char *s;scanf("%s",s);
  • 指針

    //指針的指針:保存指針變量的地址,本質還是指針,通常用在指針數組作為函數參數的時候 char name[20]="admin"; char *ptemp="hello"; // char *pstr=name; char **pts; //占用4字節空間,指針數組char *p[10];在形參中用指針的指針表示 pts=&pstr;//結構體指針,保存結構體的地址。結構體變量作為函數參數的時候,可以使用結構體指針 typedef struct staff {char name[20];char pwd[10];int id;int role; //0-管理員 1-服務員 2-經理}STAFF_T;STAFF_T user[3]={{"admin","123456",100113,0},{"waiter","123456",100114,1}, {"manager","123456",100115,2}}; STAFF_T *puser=NULL; int i; puser=user; //指向結構體數組 printf("%s\n",(puser+1)->name);//函數指針:本質還是指針,指向函數的指針,存放的是函數的地址 int sum(int a,int b); //函數聲明 int (*pfun)(int c,int d)=sum;//函數指針的定義 pfun(4,5); //函數調用 void (*Init[3])={adminInit,managerInit,waiterInit};//無類型指針可以接收任意類型的指針變量,但是任意類型指針不能直接保存無類型指針,必須進行強制類型轉換const int *pst=&a; //const 修飾指針變量的值(即地址)是可以修改的,但是指針指向地址的內容是不能修改的 int *const pst //pst的指針不能改,(pp=&i;語句錯誤),但指針指向地址的內容是可以修改的 //const右側是內容,則內容不能改,右側是指針,則指針不能改。

    鏈表

    malloc()函數;stdlib.h,允許從空閑內存池中分配內存。函數原型:void *malloc(size_t bytes);size_t byte:要申請的字節數。返回值:成功時返回內存段首地址,否則返回NULL
    內存初始化函數:void *memset( void *buffer, char ch, size_t n);string.h參數:buffer是需要設置的內存的開始地址;ch是期望填充的值; n是需要填充的字節數。返回值:成功時返回buffer的首地址,否則返回NULL
    free()函數:void free(void *p) p必需是通過malloc、calloc或realloc分配的指針(首地址)
    calloc()函數: 存儲在已分配的內存空間中的值默認為零。函數原型: void *calloc(size_t num,size_t bytes );size_t num 要分配內存單元的個數。size_t bytes 每個內存單元的字節大小。返回值: 成功時返回內存段首地址,否則返回NULL

    typedef struct staff {char name[20];char pwd[10];int id;int role; //0-管理員 1-服務員 2-經理STAFF_T *preSTAFF_T *pnext }STAFF_T; //結構體變量指針-保存地址 STAFF_T *puser=NULL; puser=(STAFF_T *)malloc(sizeof(STAFF_T)); //開辟內存空間 puser1=calloc(3,sizeof(STAFF_T)); if(puser==NULL) //puser==NULL,開辟失敗 {return -1} //開辟成功,進行內存初始化 memset(puser,'\0',sizeof(STAFF_T)*4); //對指針指向的地址開辟空間//保存數據 puser->ID=1001; strcpy(puser->name,"admin"); //釋放內存空間 free(puser)

    二、上課沒有聽懂或者沒有理解的地方

    三、當天學習的收獲

    學習了新技能 鏈表

    四、作業的思路、不會的地方

    還未開始

    五、其他需要反饋的問題

    六、心得體會

    關于結點的連接思路還有點陌生,還要捋捋。

    總結

    以上是生活随笔為你收集整理的200815-C指针高级和链表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。