整型int
乙個整數占用32位(bit),即4位元組(byte),取值範圍 -231~(231-1) 即絕對值109以內整數。
長整型long long
乙個整數占用64位(bit),即8位元組(byte),取值範圍 -263~(263-1) 即絕對值1018以內整數;
當賦予大於231-1的初值時,初值後應加上ll。
浮點型float double
單精度和雙精度浮點數分別占用32,64bit;但前者有效精度只有6 ~7位,後者有15 ~16位。
字元型
小寫字母ascii碼比大寫字母大32。
布林型
整型常量在賦值給布林型時會自動轉換為true(非零)或false(零);但在計算機中true儲存為1,false儲存為0。
const常量
const
int inf=(1
<<30)
-1;
const
double eps=
1e-8
;const
double pi=
acos(-
1.0)
;#define equ(a,b) (fabs((a)-(b))<(eps))
#define more(a,b) (((a)-(b))>(eps))
#define less(a,b) (((a)-(b))<(-eps))
#define moreequ(a,b) (((a)-(b))>(-eps))
#define lessequ(a,b) (((a)-(b))<(eps))
fabs(double x)
對double型變數取絕對值
floor(double x) 和 ceil(double x)
對double型變數向下和向上取整
pow(double r,double p)
rpsqrt(double x)
double型變數算術平方根
log(double x)
double型變數以自然數為底的對數
sin(double x) cos(double x) tan(double x)
正弦,余弦和正切值,引數要求為弧度制
double db=
sin(pi*45/
180)
;printf
("%f"
,db)
;
0.707107round(double x)
將double型變數四捨五入,返回值也是double型,需進行取整
double db=
round
(3.49);
printf
("%d\n%d\n",(
int)db)
;
break用於跳出迴圈,continue用於結束當前迴圈,直接進入下一輪迴圈
若將整個陣列都賦初值0:
//直接用乙個大括號表示
int arr[10]
=;//將陣列的第乙個元素賦值為0
int arr[10]
=;
memset()
memset(陣列名,值,sizeof(陣列名))
memset是按照位元組賦值,因此對於int型整數其4個位元組會賦同樣的值,一般賦值0或-1
#include
#include
intmain()
}
0 0 0 0 0對於乙個普通定義的結構體,其內部生成乙個不可見的預設建構函式,因此可以不經初始化就定義結構體型別的變數。
struct stuinfo
};
但是當結構體內變數很多時賦值比較複雜,因此可以重新定義建構函式。
struct stuinfo
};
或者可以簡化為一行
struct stuinfo
};
重新定義建構函式後,可以在需要時直接對結構體變數進行賦值
stuinfo stu=
stuinfo
(1203
,'m'
);
但是重新定義建構函式後,由於預設生成的建構函式被覆蓋,不能不經初始化就定義結構體變數。可以將其手動加上,只要引數個數和型別不完全相同,就可以定義任意多個建構函式以適應不同的初始化需要。
struct stuinfo
//只初始化gender
stuinfo
(char _gender)
:gender
(_gender)
//同時初始化id和gender
stuinfo
(int _id,
char _gender):id
(_id)
,gender
(_gender)
};
scanf() printf()
scanf()中,%c格式能夠識別空格和換行並將其輸出;%s通過空格或換行來識別乙個字串的結束
getchar() putchar()
輸入輸出單個位元組
gets() puts()
gets()用來輸入一行字串,識別換行符作為結束,並將其儲存在一維陣列中;
在使用scanf()後,若使用gets(),需先用getchar()接受換行符。
puts()用來輸出一行字串,即將一維陣列在介面上輸出,並跟乙個換行。
#include
intmain()
sscanf() sprintf()
sscanf
(str,
"%d"
,&n)
;
將陣列str中的內容以%d的格式寫入n中
sprintf
(str,
"%d"
,n);
將n中的內容以%d的格式寫入str中
cin() cout()
要讀入一整行,需使用getline()函式
char str[
100]
; cin.
getline
(str,
100)
;
若為string容器,則用如下方式輸入
string str;
getline
(cin,str)
;
string.h標頭檔案
#include
#include
intmain()
3str1xyzxyzxyz
C語言基礎知識
1 的問題。int i 1 int j 2 int k i j printf d k 輸出k為3。編譯原理有關編譯器在詞法解析的時候,對於運算子,總是查詢最大的匹配也就是說,i j,編譯器在找到 的時候,它不立即理解為 而是繼續下乙個字元,下乙個字元仍然是 可以組成 再往下的話便是 不成立了。所以i...
C語言基礎知識
一 位元組對齊 位元組對齊的原因,是機器在訪問記憶體中儲存的資料的高效性。通常機器是機器位數為自然邊界來訪問記憶體的,如果乙個4位元組整形數,所在的記憶體不在虛擬記憶體的自然邊界。則cpu需要讀多於一次的資料,這樣就降低了效率。所以,簡單地說,就是保證cpu指令在訪問資料的時候,能一次讀取,而不需要...
C語言基礎知識
1.進製 1 基數 基數為n,代表n進製 2 位權 從個位開始,向左依次編號為0,1.x 分別代表n進 制的x次 3 八進位制以0開頭,十六進製制以0x開頭 4 x 進製轉 進製 按權求和 十進位制轉 x進製 連除倒取餘 2.基本資料型別 3.常量 程式執行期間值不能被改變的量 分為 整型常量,浮點...