1.int型:絕對值在10^9范圍內(nèi)的整數(shù)都可以定義成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)
5.for語句:注意在C語言中不允許在for(A;B;C)語句的表達式A里定義變量(比如inta=0;的寫法是不允許的),但在C++中可以
6.數(shù)組定義:如果數(shù)組大小較大(10^6級別以上),則需要將其定義在主函數(shù)外面,否則會使程序異常退出。
7.數(shù)組賦初值:如果我們定義一個數(shù)組int array[10]={12,1,6,4}.可知只對數(shù)組的前四項賦值,那么后面沒有賦值的元素默認為0.但如果該數(shù)組沒有賦初值,數(shù)組中的每個元素都可能會是一個隨機數(shù)(不一定是0)。所以如果想給整個數(shù)組都賦值為0,簡單介紹以下四種方法:
1、int array[10]={};
2、int array[10]={0};
3、memset函數(shù) :memset(array,0,sizeof(array));//若數(shù)組為int array[10],則此處sizeof(array)=4*5=20,因為
memset是按字節(jié)賦值. 格式 memset(數(shù)組名,值,sizeof(數(shù)組名));
4、fill函數(shù) :fill(array,array+5,8);//數(shù)組從array[0]到array[4]均被賦值為8,格式 fill(起始地址,結(jié)束地址,值);
注意:memset()函數(shù)需頭文件
8.二維數(shù)組賦值:若二維數(shù)組array[4][5]={{1,2,3,4,5},{2,2,3},{},{4,2,3,5}};可以看出第三行用{}跳過了(如果不加大括號是無法通過編譯的)
9.字符數(shù)組初始化:字符數(shù)組可以通過直接賦值字符串來初始化(僅限初始化,程序其他位置不允許這樣直接賦值整個字符串)
10.字符數(shù)組輸入輸出:定義char str[10]; scanf("%s",str); pritnf("%s",str); 注意字符數(shù)組在輸入時不需要加&取地址運算符. 且scanf輸入時%s通過空格或換行來識別一個字符串的結(jié)束
gets用來輸入一行字符串.gets識別換行符n作為輸入結(jié)束,因此scanf完一個整數(shù)后如果要使用gets,需要先用getchar接收整數(shù)后的換行符;puts輸出一行字符串后會緊跟一個換行(n)
11.字符數(shù)組長度的重要性:字符數(shù)組的長度一定要比實際存儲字符串的長度至少多1,作為結(jié)束符'0'.注int型數(shù)組不需要. 且如果不是使用scanf函數(shù)的%s格式或gets函數(shù)輸入字符串(例如getchar),一定要手動早輸入的每個字符串后加‘0',否則printf和puts輸出字符串將無法識別字符串末尾而輸出一大堆亂碼.
12.sscanf與sprintf:
sscanf : int n; char str[10]="123"; sscanf(str,"%d",&n); //sscanf寫法的作用是把字符數(shù)組str中的內(nèi)容以"%d"的格式寫到n中(從左往右). sscanf還支持正則表達式.
sprintf : int n; char str[10]="123"; sprintf(str,"%d",n); //sprintf寫法的作用是把n以"%d"的格式寫到str字符數(shù)組中(從右往左)
13.引用&:注意要把引用的&與取地址運算符&區(qū)分開. 引用并不是取地址的意思,引用不產(chǎn)生副本,而是給原變量起了個別名 .由于引用是產(chǎn)生變量的別名,因此常量不可以使用引用。所以:
其中不可以直接寫成swap(&a,&b),而必須用指針變量p1和p2存放&a和&b,然后把指針變量作為參數(shù)傳入.
14.訪問結(jié)構(gòu)體內(nèi)的元素:
于是訪問stu中變量的寫法:
stu.id
stu,name
stu.next
訪問指針變量p中的元素的寫法:
(*p).id <=> p->id
(*p).name <=> p->name
(*p).next <=> p->next
15.結(jié)構(gòu)體的初始化
注意:如果自己重新定義了構(gòu)造函數(shù),則默認生成的構(gòu)造函數(shù)就會被覆蓋. 如果想不經(jīng)初始化就定義結(jié)構(gòu)體變量需手動加上.
-
C語言
+關注
關注
180文章
7614瀏覽量
137742 -
數(shù)組
+關注
關注
1文章
417瀏覽量
26029
原文標題:C/C++入門易錯點及常用小技巧
文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
C++入門基礎教程大全
C++ 入門自學教程
C++語言入門教程之C++語言程序設計函數(shù)的詳細資料概述免費下載
C++入門教程之C++程序設計的課件資料免費下載
![<b class='flag-5'>C++</b><b class='flag-5'>入門</b>教程之<b class='flag-5'>C++</b>程序設計的課件資料免費下載](https://file.elecfans.com/web1/M00/7D/9D/pIYBAFwJzPaATfGzAAB9eKe7fFA045.png)
C語言與C++相互調(diào)用
![<b class='flag-5'>C</b>語言與<b class='flag-5'>C++</b>相互調(diào)用](https://file.elecfans.com/web1/M00/DB/52/pIYBAGAE-4GAMG1iAABMAgM4a5U248.png)
適合具備 C 語言基礎的 C++ 入門教程(二)
![適合具備 <b class='flag-5'>C</b> 語言基礎的 <b class='flag-5'>C++</b> <b class='flag-5'>入門</b>教程(二)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C++學習筆記之c++的基本認識
C++入門之string
C++簡史:C++是如何開始的
![<b class='flag-5'>C++</b>簡史:<b class='flag-5'>C++</b>是如何開始的](https://file1.elecfans.com/web2/M00/A9/66/wKgZomUl7m-AHJX6AABuJjgxs14678.png)
評論