C/C++入門易錯點及賽車盤口搭建出租常用小技巧
1. int型 :賽車盤口搭建出租【企鵝21717-93408】絕對值在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。
4. if條件 :由於if(n)表示if(n!=0),所以if(!n)表示if(n==0)
創一個小群,供大家學習交流聊天
如果有對學C++方面有什麽疑惑問題的,或者有什麽想說的想聊的大家可以一起交流學習一起進步呀。
也希望大家對學C++能夠持之以恒
C++愛好群,
5. for語句 :註意在C語言中不允許在for(A;B;C)語句的表達式A裏定義變量(比如int a=0;的寫法是不允許的),但在C++中可以
6. 數組定義 :如果數組大小較大(10^6級別以上),則需要將其定義在主函數外面,否則會使程序異常退出。
7. 數組賦初值 :如果我們定義一個數組int array[10]={12,1,6,4}.可知只對數組的前四項賦值,那麽後面沒有賦值的元素默認為0.但如果該數組沒有賦初值,數組中的每個元素都可能會是一個隨機數(不一定是0)。所以如果想給整個數組都賦值為0,簡單介紹以下四種方法:
1、int array[10]={};
2、int array[10]={0};
3、memset函數 :memset(array,0,sizeof(array));//若數組為int array[10],則此處sizeof(array)=4*5=20,因為
memset是按字節賦值. 格式 memset(數組名,值,sizeof(數組名));
4、fill函數 :fill(array,array+5,8);//數組從array[0]到array[4]均被賦值為8,格式 fill(起始地址,結束地址,值);
註意:memset()函數需頭文件<cstring>或<string.h>. 且memset()只能為數組賦初值0和-1,因為memset()只能以字節為單位賦值
fill()函數需頭文件<algorithm>. 且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輸出字符串將無法識別字符串末尾而輸出一大堆亂碼.
C/C++入門易錯點及賽車盤口搭建出租常用小技巧