C++語言誕生至今已有30多個年頭了,主要集中在須要運行效率比較高的行業,好比如今的遊戲開發以及高效服務器等等。正則表達式
C++學習難度比其它語言都要高,這是不能否認的,其學習難度主要在於它的複雜性,如何入門C++,想必不少人都頭疼過。講到入門,咱們首先是掌握基礎語法,C++的語法是和C語言的語法很相近。數組
**【文章福利】:**小編推薦本身的C語言交流羣:967051845!整理了一些我的以爲比較好的學習書籍、視頻資料共享在羣文件裏面,有須要的能夠自行添加哦!~服務器
今天小編講講C/C++入門易錯點及經常使用小技巧函數
**1. int型 :**絕對值在10^9範圍內的整數均可以定義成int型。學習
**2. long long型 :**若是long long型賦值大於2^31 -1的初值,則須要在初值後面加上LL,不然會編譯錯誤。指針
**3. float、double輸入輸出格式 :**使用printf("%f",c);語句時,%f是float和double型的輸出格式。而在使用scanf輸入時,float輸入格式爲%f,double輸入格式爲%lf。cdn
**4. if條件 :**因爲if(n)表示if(n!=0),因此if(!n)表示if(n==0)視頻
**5. for語句 :**注意在C語言中不容許在for(A;B;C)語句的表達式A裏定義變量(好比inta=0;的寫法是不容許的),但在C++中能夠blog
**6. 數組定義 :**若是數組大小較大(10^6級別以上),則須要將其定義在主函數外面,不然會使程序異常退出。遊戲
**7. 數組賦初值 :**若是咱們定義一個數組int array[10]={12,1,6,4}.可知只對數組的前四項賦值,那麼後面沒有賦值的元素默認爲0.但若是該數組沒有賦初值,數組中的每一個元素均可能會是一個隨機數(不必定是0)。因此若是想給整個數組都賦值爲0,簡單介紹如下四種方法:
**注意:**memset()函數需頭文件或<string.h>. 且memset()只能爲數組賦初值0和-1,由於memset()只能以字節爲單位賦值fill()函數需頭文件. 且fill()能夠爲數組或容器的某段區域賦某個任意相同的值.
8. 二維數組賦值 :若二維數組array[4][5]={{1,2,3,4,5},{2,2,3},{},{4,2,3,5}};能夠看出第三行用{}跳過了(若是不加大括號是沒法經過編譯的)
**9. 字符數組初始化 :**字符數組能夠經過直接賦值字符串來初始化(僅限初始化,程序其餘位置不容許這樣直接賦值整個字符串)
**10. 字符數組輸入輸出 :**定義char str[10]; scanf("%s",str); pritnf("%s",str); 注意字符數組在輸入時不須要加&取地址運算符. 且scanf輸入時%s經過空格或換行來識別一個字符串的結束 gets用來輸入一行字符串.gets識別換行符\n做爲輸入結束,所以scanf完一個整數後若是要使用gets,須要先用getchar接收整數後的換行符;puts輸出一行字符串後會緊跟一個換行(\n)
**11. 字符數組長度的重要性 :**字符數組的長度必定要比實際存儲字符串的長度至少多1,做爲結束符'\0'.注int型數組不須要. 且若是不是使用scanf函數的%s格式或gets函數輸入字符串(例如getchar),必定要手動早輸入的每一個字符串後加‘\0',不然printf和puts輸出字符串將沒法識別字符串末尾而輸出一大堆亂碼.
**12. sscanf與sprintf :**sscanf : int n; char str[10]="123"; sscanf(str,"%d",&n); //sscanf寫法的做用是把字符數組str中的內容以"%d"的格式寫到n中(從左往右). sscanf還支持正則表達式. sprintf : int n; char str[10]="123"; sprintf(str,"%d",n); //sprintf寫法的做用是把n以"%d"的格式寫到str字符數組中(從右往左)
**13. 引用& :**注意要把引用的&與取地址運算符&區分開. 引用並非取地址的意思,引用不產生副本,而是給原變量起了個別名 .因爲引用是產生變量的別名,所以常量不可使用引用。因此:
其中不能夠直接寫成swap(&a,&b),而必須用指針變量p1和p2存放&a和&b,而後把指針變量做爲參數傳入.
14. 訪問結構體內的元素 :
因而訪問stu中變量的寫法: stu.id stu,name stu.next
訪問指針變量p中的元素的寫法: (*p).id <=> p->id (*p).name <=> p->name (*p).next <=> p->next
15. 結構體的初始化
**注意:**若是本身從新定義了構造函數,則默認生成的構造函數就會被覆蓋. 若是想不經初始化就定義結構體變量需手動加上.
小編C工做也有五年了,推薦個**C語言/C++學習交流羣:967051845!**裏面整理了一些我的以爲比較好的學習書籍、視頻資料共享在羣文件裏面,有須要的能夠自行添加哦!~