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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言基础笔记3

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言基础笔记3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、全局變量的有效區并不是整個文件中,而是從定義該全局變量處開始。 2、在局部棧空間定義的變量,一旦加上static后,其存儲空間就變成了常量區的靜態數據區了,其作用范圍,近似 ?????全局變量,并且,如果不初始化,程序會自動賦0。如果賦值則只會賦值一次。下一次變回記住第一次的賦值。 3、static修飾全局變量是,不讓全局變量被其他文件借用,或修改。即加了權限設置。同理,對于函數來說,也 ? ? ?是一樣,當其他局部函數加上static后,該函數就不能被其他函數所調用了。靜態函數只能在本文件內使用。 ? ? ?extern可以用來擴寬局部變量的作用范圍。 4、定義短字節的數據(char 、short)可以節省空間。算結構體的大小時,推薦用sizeof去算。 5、學習結構體時,用scanf輸入時,就可以適當的關注其返回值了,如果有幾個成功匹配它就會返回幾。 ? ? ?其中,對于空格來說,%d ?%S 都可以忽略空格,但%c ?就不行,,對于空格,它也照樣讀,這里就需要注意一 ?????下了。其中一個簡單的技巧就是,在scanf里面的雙引號里面輸入一個空格eg:“ ? %c” 6、需要理解的是,一般會將結構體的定義放在主函數外面,或者更多的是放在頭文件里。注意:這里是定義的是一 ?????個結構體類型,而不是變量。故它并不是全局變量。這點是值得注意的。 7、對于有前++的運算表達式? 不用拆成兩部分。直接看優先級以及結合順序。對于后++。一定先放在后一步。 ? ? ?先看優先級,再看結合順序 8、鏈表是一種常見的數據結構,是動態的進行存儲分配的一種結構。 9、鏈表的建立時有:頭插法、尾插法、有序插法 頭插法: void list_head_insert(IN OUT pstu* pphead,IN OUT pstu* pptail,IN int i) { ? ? pstu pnew=(pstu)malloc(sizeof(stu)); ? ? memset(pnew,0,sizeof(stu)); ? ? pnew->num=i; ? ? if(NULL==*pphead)//當鏈表為空時,新節點即為頭節點,又為尾節點 ? ? { ? ? ? ? *pphead=pnew; ? ? ? ? *pptail=pnew; ? ? }else{//當鏈表不為空時,原有的頭節點作為新節點的pnext,pnew成為新的頭 ? ? ? ? pnew->pnext=*pphead; ? ? ? ? *pphead=pnew; ? ? } }
//尾插法新建鏈表 void list_tail_insert(IN OUT pstu* pphead,IN OUT pstu* pptail,IN int i) { ? ? pstu pnew=(pstu)malloc(sizeof(stu)); ? ? memset(pnew,0,sizeof(stu)); ? ? pnew->num=i; ? ? if(NULL==*pptail) ? ? { ? ? ? ? *pphead=pnew; ? ? ? ? *pptail=pnew; ? ? }else{ ? ? ? ? (*pptail)->pnext=pnew; ? ? ? ? *pptail=pnew; ? ? } }
//有序插入 void list_sort_insert(IN OUT pstu* pphead,IN OUT pstu* pptail,IN int i) { ? ? pstu ppre,pcur; ? ? pstu pnew=(pstu)malloc(sizeof(stu)); ? ? memset(pnew,0,sizeof(stu)); ? ? pnew->num=i; ? ? ppre=*pphead; ? ? pcur=*pphead; ? ? if(NULL==ppre)//鏈表是否為空 ? ? { ? ? ? ? *pphead=pnew; ? ? ? ? *pptail=pnew; ? ? }else if(ppre->num>i)//頭插法,將新節點插入 ? ? { ? ? ? ? pnew->pnext=*pphead; ? ? ? ? *pphead=pnew; ? ? }else{//插入中間 ? ? ? ? while(pcur!=NULL) ? ? ? ? { ? ? ? ? ? ? if(pcur->num>i) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ppre->pnext=pnew; ? ? ? ? ? ? ? ? pnew->pnext=pcur; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? ppre=pcur; ? ? ? ? ? ? pcur=pcur->pnext; ? ? ? ? } ? ? ? ? if(NULL==pcur)//尾部插入 ? ? ? ? { ? ? ? ? ? ? ppre->pnext=pnew; ? ? ? ? ? ? *pptail=pnew; ? ? ? ? } ? ? } } 10、刪除鏈表分為四種情況:刪的是頭部,中間,尾部,以及,最后一次,刪除完后就變成空鏈表的情況。 ? ? ? ?還有一點就是刪除一個節點后,要記得釋放它的內存空間。服務器程序大部分情況下是不會運行停止的。 ? ? ? ?微軟的編譯器是masm 編譯器

總結

以上是生活随笔為你收集整理的C语言基础笔记3的全部內容,希望文章能夠幫你解決所遇到的問題。

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