20160721IOS_C

1、main可以沒有參數(shù)或者有兩個(gè)參數(shù):
(1)第一個(gè)參數(shù)是命令行的字符串?dāng)?shù)
(2)第二個(gè)參數(shù)是一個(gè)指向字符串的指針數(shù)組

2煤惩、stdlib.h
(1)atoi(char * str);//將字符串轉(zhuǎn)換成整數(shù)爷肝,失敗返回0
(2)atol(char * str);//轉(zhuǎn)換稱long類型
(3)atof(char * str);//轉(zhuǎn)換稱double類型
(4)strtol(char * str, char **endptr, int (5)base);//把字符串轉(zhuǎn)換成double類型猾浦,還可以識(shí)別并報(bào)告字符串中非數(shù)字的第一個(gè)字符,還可以指定數(shù)字基數(shù)
(6)strtoul(char * str, char **endptr, int (7)base);//把字符串轉(zhuǎn)換成double類型陆错,還可以識(shí)別并報(bào)告字符串中非數(shù)字的第一個(gè)字符,還可以指定數(shù)字基數(shù)
strtod(char * str, char **endptr);//把字符串轉(zhuǎn)換成double類型,還可以識(shí)別并報(bào)告字符串中非數(shù)字的第一個(gè)字符
3金赦、C變量的鏈接
(1)分為外部鏈接音瓷、內(nèi)部鏈接、空鏈接
(2)居右代碼塊作用于或者函數(shù)原型作用域的變量有空連接夹抗,由其定義所在的代碼塊或函數(shù)原型所私有
(3)具有文件作用域的變量有外部鏈接绳慎,一個(gè)外部鏈接的變量可以在一個(gè)多文件程序的任何地方使用
(4)具有文件作用域的變量有內(nèi)部鏈接,一個(gè)內(nèi)部鏈接的變量可以在一個(gè)文件的任何地方使用
4漠烧、自動(dòng)變量
(1)屬于自動(dòng)存儲(chǔ)類的變量居右自動(dòng)存儲(chǔ)時(shí)期杏愤、代碼塊作用域和空鏈接。默認(rèn)下已脓,在代碼塊或函數(shù)的頭部定義的任意變量都屬于自動(dòng)存儲(chǔ)類珊楼,也可以顯式使用auto定義:auto int plox;//auto稱為存儲(chǔ)類說明符
(2)在嵌套代碼塊中,如果在內(nèi)層代碼塊定義了一個(gè)具有和外層代碼塊變量同一名字的變量度液,內(nèi)層代碼塊定義的名字是內(nèi)層代碼塊所使用的變量厕宗,稱為內(nèi)層定義覆蓋了外部定義
(3)除非顯式初始化自動(dòng)變量,否則它不會(huì)被自動(dòng)初始化恨诱,未初始化的值是先前占用分配給它的空間的任意值
5媳瞪、寄存器變量
(1)與自動(dòng)變量一樣,具有代碼塊作用于照宝、空鏈接蛇受、以及自動(dòng)存儲(chǔ)時(shí)期,
(2)通過存儲(chǔ)類說明符register定于:register int quick;
(3)不能對(duì)寄存器變量使用地址運(yùn)算符&
(4)有可能寄存器變量不在寄存器中厕鹃,而在高速內(nèi)存中兢仰,但依然不能對(duì)它使用地址運(yùn)算符

6、具有代碼塊作用域的靜態(tài)變量
(1)代碼塊運(yùn)行完剂碴,靜態(tài)變量不消失
(2)使用const定義:const int stay;
(3)對(duì)函數(shù)參數(shù)不能使用static
7把将、具有外部鏈接的靜態(tài)變量
(1)居右文件作用域、外部鏈接和靜態(tài)存儲(chǔ)時(shí)期
(2)把變量的定義聲明放在所有函數(shù)之外忆矛,即創(chuàng)建了一個(gè)外部變量
(3)可使用extern關(guān)鍵字聲明察蹲,若變量是在別的文件中定義的,使用extern來聲明變量就是必須的
(4)外部變量在本地使用可不聲明催训,如要聲明需要添加extern關(guān)鍵字(對(duì)于數(shù)組洽议,不要填寫數(shù)組長(zhǎng)度),如果沒有添加則會(huì)覆蓋外部變量而創(chuàng)建自動(dòng)變量
(5)如果不顯式地對(duì)外部變量進(jìn)行初始化漫拭,外部變量會(huì)自動(dòng)被賦值為0
8亚兄、具有內(nèi)部鏈接的靜態(tài)變量
(1)具有靜態(tài)存儲(chǔ)時(shí)期、文件作用于以及內(nèi)部鏈接
(2)可被同一文件中的函數(shù)所使用采驻,而普通的外部變量可以被程序的任意文件訪問
(3)可用extern再次聲明任何具有文件作用于的變量
9审胚、多文件中的全局變量
(1)除了一個(gè)聲明外匈勋,其他所有聲明都必須使用關(guān)鍵字extern,并且只有在定義聲明中才可以對(duì)該變量進(jìn)行初始化
(2)除非在第二個(gè)文件中也聲明了該變量(使用extern)膳叨,否則在一個(gè)文件中定義的外部變量不可以用于第二個(gè)文件
(3)一個(gè)外部變量聲明本只是使一個(gè)變量可能對(duì)其他文件可用
10洽洁、 存儲(chǔ)類說明符
(1)auto, register, static, extern, typedef, 只能使用一個(gè)
(2)auto表明一個(gè)變量具有自動(dòng)存儲(chǔ)時(shí)期,該說明符只能用在具有代碼塊作用域的變量聲明中
(3)register只能用于具有代碼塊作用域的變量菲嘴,它將一個(gè)變量歸入寄存器存儲(chǔ)類诡挂,相當(dāng)于請(qǐng)求將該變量存儲(chǔ)在一個(gè)寄存器內(nèi),它的使用也使你不能獲得變量的地址
(4)static在用于具有代碼塊作用域的變量的聲明時(shí)临谱,使該變量具有靜態(tài)存儲(chǔ)時(shí)期,從而得以在程序運(yùn)行期間(即使在包含該變量的代碼塊并沒有運(yùn)行時(shí))存在并保留其值奴璃。變量仍具有代碼塊作用域和空鏈接悉默,static用于具有文件作用域的變量的聲明時(shí),表明該變量具有內(nèi)部鏈接
(5)extern表明你在聲明一個(gè)已經(jīng)在別處定義了的變量苟穆。如果包含extern的聲明具有文件作用域抄课,所指向的變量必然具有外部鏈接。如果包含extern的聲明具有代碼塊作用域雳旅,所指向的可能具有外部鏈接也可能具有內(nèi)部鏈接跟磨,這取決于該變量的定義聲明
11、存儲(chǔ)類和函數(shù)
(1)double ganma();//默認(rèn)是外部的函數(shù)
(2)static double beta();//beta函數(shù)被限定在該文件內(nèi)攒盈,其他文件可使用相同名稱的不同函數(shù)
(3)extern double delta();//使用關(guān)鍵字extern來聲明在其他文件中定義的函數(shù)
12抵拘、隨機(jī)數(shù)
(1)rand()產(chǎn)生隨機(jī)數(shù)
(2)定義隨機(jī)數(shù)的范圍: rand() % sides + 1;
(3)rand()是偽隨機(jī)數(shù)發(fā)生器,隨機(jī)數(shù)的產(chǎn)生基于一個(gè)稱為“種子”的數(shù)字
13型豁、分配內(nèi)存malloc, free, calloc
(1)double * ptd = (double *)malloc(30 * sizeof(double));
(2)可以用數(shù)組的方式來訪問內(nèi)存塊的各個(gè)元素
(3)創(chuàng)建動(dòng)態(tài)大小的內(nèi)存空間(數(shù)組):double * ptd = (double *)malloc(n * sizeof(double));
(4)malloc創(chuàng)建的地址需要通過調(diào)用free釋放內(nèi)存:free(ptd);
(5)如果無法分配內(nèi)存空間就返回空指針
(6)類型指派(double )在c可選僵蛛,但在c++中是必須的
(7)stdlib.h 提供退出程序函數(shù) exit(),其中常量參數(shù):EXIT_SUCCESS, EXIT_FAILURE
(8)long * newmen = (long )calloc(100, sizeof(long));,塊中的全部位置零,可用free釋放內(nèi)存
(9)malloc和變長(zhǎng)數(shù)組的區(qū)別:變長(zhǎng)數(shù)組是自動(dòng)存儲(chǔ)的迎变,變長(zhǎng)數(shù)組所用內(nèi)存空間在運(yùn)行完定義部分之后會(huì)自動(dòng)釋放
(10)malloc創(chuàng)建多維數(shù)組:int (
p2)[m] = (int (
)[m])malloc(n * m * sizeof(int));
14充尉、類型限定詞
(1)冪等性:const const const int n = 6;//相當(dāng)于 const int n = 6;
(2)用const修飾指針,const float * pf;//pf指向一個(gè)常量浮點(diǎn)數(shù)值衣形,指針指向的地址可改驼侠,指向的數(shù)據(jù)不可改
(3)float * const pt;//pt是一個(gè)常量指針,指向的地址不可改谆吴,指向的數(shù)據(jù)可改
(4)const float * const ptr;//ptr是一個(gè)指向常量的常量指針
(5)cosnt修飾函數(shù)參數(shù)const int array[], cosnt int * array, 表明array指向的數(shù)據(jù)是不可變的
(6)對(duì)全局變量使用const倒源, 其他文件調(diào)用聲明 extern const double PI, extern const char * MONTH[]
(7)類型限定詞volatile表明該變量除了可被程序意外還可被其他代理改變
(8)類型限定詞restrict允許編譯器優(yōu)化幾種代碼增強(qiáng)計(jì)算支持,只可用于指針纪铺,并表明指針是訪問一個(gè)數(shù)據(jù)對(duì)象的唯一且初始的方式:int * restrict restar = (int *)malloc(10 * sizeof(int));
(9)void ofmout(int * const a1, int * restrict a2, int n);//以前的風(fēng)格
void ofmouth(int a1[const], int a2[restrict], int n);//C99允許
double stic(double ar[static 20]);
15相速、標(biāo)準(zhǔn)I/O
(1)FILE *fp;
(2)fp = fopen(filename, "r");//打開文件失敗返回NULL
(3)(ch = getc(fp)) != EOF //讀取一個(gè)字符
(4)putc(ch, stdout); //相當(dāng)于putchar(ch);
(5)fclose(fp);
(6)fopen()函數(shù)的模式字符串
①"r":打開一個(gè)文本文件,可以讀取文件
②"w":打開一個(gè)文本文件鲜锚,可以寫入文件突诬,先將文件的長(zhǎng)度截為零苫拍,如果該文件不存在則先創(chuàng)建之
③"a":打開一個(gè)文本文件,可以寫入文件旺隙,向已有文件的尾部追加內(nèi)容绒极,如果該文件不存在則先創(chuàng)建之
④"r+":打開一個(gè)文本文件,可以進(jìn)行更新蔬捷,也即可以讀取和寫入文件
⑤"w+":打開一個(gè)文本文件垄提,可以進(jìn)行更新(讀取和寫入),如果該文件存在則首先將其長(zhǎng)度截為零周拐,如果不存在則先創(chuàng)建之
⑥"a+":打開一個(gè)文本文件铡俐,可以進(jìn)行更新(讀取和寫入),向已有文件的尾部追加內(nèi)容妥粟,如果該文件不存在則先創(chuàng)建之审丘,可以讀取整個(gè)文件,但寫入時(shí)只能追加內(nèi)容
⑦"rb","wb","ab","ab+","a+b","wb+","w+b","ab+","a+b":與前面的模式相似勾给,只是使用二進(jìn)制而非文本模式打開文件
(7)putc(ch, fpout);//將ch字符寫入到FILE指針fpout指定的文件中
(8)fp = getc(fp);//當(dāng)嘗試讀入字符時(shí)發(fā)現(xiàn)已經(jīng)達(dá)到文件結(jié)尾,getc()函數(shù)會(huì)返回一個(gè)特殊只EOF
(9)fclose(fp)函數(shù)關(guān)閉由指針fp指定的文件滩报,同時(shí)根據(jù)需要刷新緩沖區(qū),更正規(guī)的程序還要檢查是否成功關(guān)閉了文件播急,如果文件成功關(guān)閉脓钾,fclose()函數(shù)將返回值0,否則返回EOF
(10)標(biāo)準(zhǔn)文件指針:標(biāo)準(zhǔn)輸入stdin, 標(biāo)準(zhǔn)輸出stdout, 標(biāo)準(zhǔn)錯(cuò)誤stderr

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桩警,一起剝皮案震驚了整個(gè)濱河市可训,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捶枢,老刑警劉巖沉噩,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異柱蟀,居然都是意外死亡川蒙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門长已,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畜眨,“玉大人,你說我怎么就攤上這事术瓮】的簦” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵胞四,是天一觀的道長(zhǎng)恬汁。 經(jīng)常有香客問我,道長(zhǎng)辜伟,這世上最難降的妖魔是什么氓侧? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任脊另,我火速辦了婚禮,結(jié)果婚禮上约巷,老公的妹妹穿的比我還像新娘偎痛。我一直安慰自己,他們只是感情好独郎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布踩麦。 她就那樣靜靜地躺著,像睡著了一般氓癌。 火紅的嫁衣襯著肌膚如雪谓谦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天贪婉,我揣著相機(jī)與錄音茁计,去河邊找鬼。 笑死谓松,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的践剂。 我是一名探鬼主播鬼譬,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逊脯!你這毒婦竟也來了优质?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤军洼,失蹤者是張志新(化名)和其女友劉穎巩螃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匕争,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡避乏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甘桑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拍皮。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖跑杭,靈堂內(nèi)的尸體忽然破棺而出铆帽,到底是詐尸還是另有隱情,我是刑警寧澤德谅,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布爹橱,位于F島的核電站,受9級(jí)特大地震影響窄做,放射性物質(zhì)發(fā)生泄漏愧驱。R本人自食惡果不足惜慰技,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冯键。 院中可真熱鬧惹盼,春花似錦、人聲如沸惫确。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽改化。三九已至掩蛤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陈肛,已是汗流浹背揍鸟。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留句旱,地道東北人阳藻。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谈撒,于是被迫代替她去往敵國(guó)和親腥泥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容