1.int型:絕對(duì)值在10^9范圍內(nèi)的整數(shù)都可以定義成int型。
2.long long型:如果long long型賦值大于2^31 -1的初值,則需要在初值后面加上LL,否則會(huì)編譯錯(cuò)誤。
3.float、double輸入輸出格式:使用printf("%f",c);語(yǔ)句時(shí),%f是float和double型的輸出格式。而在使用scanf輸入時(shí),float輸入格式為%f,double輸入格式為%lf。
4.if條件:由于if(n)表示if(n!=0),所以if(!n)表示if(n==0)
5.for語(yǔ)句:注意在C語(yǔ)言中不允許在for(A;B;C)語(yǔ)句的表達(dá)式A里定義變量(比如inta=0;的寫(xiě)法是不允許的),但在C++中可以
6.數(shù)組定義:如果數(shù)組大小較大(10^6級(jí)別以上),則需要將其定義在主函數(shù)外面,否則會(huì)使程序異常退出。
7.數(shù)組賦初值:如果我們定義一個(gè)數(shù)組int array[10]={12,1,6,4}.可知只對(duì)數(shù)組的前四項(xiàng)賦值,那么后面沒(méi)有賦值的元素默認(rèn)為0.但如果該數(shù)組沒(méi)有賦初值,數(shù)組中的每個(gè)元素都可能會(huì)是一個(gè)隨機(jī)數(shù)(不一定是0)。所以如果想給整個(gè)數(shù)組都賦值為0,簡(jiǎn)單介紹以下四種方法:
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,因?yàn)?/p>
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}};可以看出第三行用{}跳過(guò)了(如果不加大括號(hào)是無(wú)法通過(guò)編譯的)
9.字符數(shù)組初始化:字符數(shù)組可以通過(guò)直接賦值字符串來(lái)初始化(僅限初始化,程序其他位置不允許這樣直接賦值整個(gè)字符串)
10.字符數(shù)組輸入輸出:定義char str[10]; scanf("%s",str); pritnf("%s",str); 注意字符數(shù)組在輸入時(shí)不需要加&取地址運(yùn)算符. 且scanf輸入時(shí)%s通過(guò)空格或換行來(lái)識(shí)別一個(gè)字符串的結(jié)束
gets用來(lái)輸入一行字符串.gets識(shí)別換行符n作為輸入結(jié)束,因此scanf完一個(gè)整數(shù)后如果要使用gets,需要先用getchar接收整數(shù)后的換行符;puts輸出一行字符串后會(huì)緊跟一個(gè)換行(n)
11.字符數(shù)組長(zhǎng)度的重要性:字符數(shù)組的長(zhǎng)度一定要比實(shí)際存儲(chǔ)字符串的長(zhǎng)度至少多1,作為結(jié)束符'0'.注int型數(shù)組不需要. 且如果不是使用scanf函數(shù)的%s格式或gets函數(shù)輸入字符串(例如getchar),一定要手動(dòng)早輸入的每個(gè)字符串后加‘0',否則printf和puts輸出字符串將無(wú)法識(shí)別字符串末尾而輸出一大堆亂碼.
12.sscanf與sprintf:
sscanf : int n; char str[10]="123"; sscanf(str,"%d",&n); //sscanf寫(xiě)法的作用是把字符數(shù)組str中的內(nèi)容以"%d"的格式寫(xiě)到n中(從左往右). sscanf還支持正則表達(dá)式.
sprintf : int n; char str[10]="123"; sprintf(str,"%d",n); //sprintf寫(xiě)法的作用是把n以"%d"的格式寫(xiě)到str字符數(shù)組中(從右往左)
13.引用&:注意要把引用的&與取地址運(yùn)算符&區(qū)分開(kāi). 引用并不是取地址的意思,引用不產(chǎn)生副本,而是給原變量起了個(gè)別名 .由于引用是產(chǎn)生變量的別名,因此常量不可以使用引用。所以:
其中不可以直接寫(xiě)成swap(&a,&b),而必須用指針變量p1和p2存放&a和&b,然后把指針變量作為參數(shù)傳入.
14.訪問(wèn)結(jié)構(gòu)體內(nèi)的元素:
于是訪問(wèn)stu中變量的寫(xiě)法:
stu.id
stu,name
stu.next
訪問(wèn)指針變量p中的元素的寫(xiě)法:
(*p).id <=> p->id
(*p).name <=> p->name
(*p).next <=> p->next
15.結(jié)構(gòu)體的初始化
注意:如果自己重新定義了構(gòu)造函數(shù),則默認(rèn)生成的構(gòu)造函數(shù)就會(huì)被覆蓋. 如果想不經(jīng)初始化就定義結(jié)構(gòu)體變量需手動(dòng)加上.
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7631瀏覽量
141124 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26475
原文標(biāo)題:C/C++入門(mén)易錯(cuò)點(diǎn)及常用小技巧
文章出處:【微信號(hào):wujianying_danpianji,微信公眾號(hào):?jiǎn)纹瑱C(jī)精講吳鑒鷹】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
C++入門(mén)基礎(chǔ)教程大全
C++ 入門(mén)自學(xué)教程
Visual C++編程入門(mén)視頻
c++入門(mén)經(jīng)典習(xí)題集
C++語(yǔ)言入門(mén)教程之C++語(yǔ)言程序設(shè)計(jì)函數(shù)的詳細(xì)資料概述免費(fèi)下載
C++入門(mén)教程之C++程序設(shè)計(jì)的課件資料免費(fèi)下載

C語(yǔ)言與C++相互調(diào)用

適合具備 C 語(yǔ)言基礎(chǔ)的 C++ 入門(mén)教程(二)

C++學(xué)習(xí)筆記之c++的基本認(rèn)識(shí)
C++入門(mén)之string
淺談C語(yǔ)言與C++的前世今生

c++入門(mén)后如何進(jìn)階

C++簡(jiǎn)史:C++是如何開(kāi)始的

評(píng)論