真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語(yǔ)言函數(shù)筆記方法,c語(yǔ)言函數(shù)的使用方法

(OC 初級(jí)筆記)OC 常用數(shù)學(xué)函數(shù)(C語(yǔ)言)

1.算數(shù)函數(shù)

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為子洲等服務(wù)建站,子洲等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為子洲企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

1.1產(chǎn)生隨機(jī)數(shù)

rand()

1.2取絕對(duì)值

fabs()

1.3取復(fù)數(shù)的絕對(duì)值

cabs(struct complex i)

1.4浮點(diǎn)數(shù)的絕對(duì)值

fabs()/fabsf()/fabsl()

1.5取余

fmod(double, double)

1.6向上取整

ceil()/ceilf()/ceill()

1.7向下取整

floor()/floorf()/floorl()

1.8求最大值

fmax()/fmaxf()/fmaxl()

1.9求最小值

fmin()/fminf()/fminl()

1.10四舍五入

round()/roundf()/roundl()

2.指數(shù)與對(duì)數(shù)

2.1求 n 的 m 次方的值

pow(n, m)/powf(n, m)/powl(n, m)

2.2求 e 的 x 次方

exp(x)/expf(x)/expl(x)

2.3以 e 為底的對(duì)數(shù)值

log()/logf()/logl()

2.4以10為底的對(duì)數(shù)

log10()/log10f()/log10l()

2.5開(kāi)平方(根號(hào))

sqrt()

3.三角函數(shù)

3.1正弦值

sin()/sinf()/sinl()

3.2余弦值

cons()/cosf()/cosl()

3.3正切值

tan()/tanf()/tanl()

3.4雙曲線正弦值

sinh()/sinhf()/sinhl()

3.5雙曲線余弦值

cosh()/coshf()/coshl()

3.4雙曲線正切值

tanh()/tanhf()/tanhl()

4.反三角函數(shù)

4.1反正弦值

asin()/asinf()/asinl()

4.2反余弦值

acos()/acosf()/acosl()

4.3反正切值

atan()/atanf()/atanl()

4.4反雙曲線正弦值

asinh()/asinhf()/asinhl()

4.5反雙曲線余弦值

acosh()/acoshf()/acoshl()

4.6反雙曲線正切值

atanh()/atanhf()/atanhl()

學(xué)c語(yǔ)言如何做筆記

我自學(xué)C語(yǔ)言的時(shí)候的筆記只記程序,然后在程序旁邊寫(xiě)下程序中新學(xué)的知識(shí),比如

剛學(xué)的時(shí)候

#include stdio.h

main()

{

printf("Hello!");

}

每個(gè)C程序的基本格式是:

#include stdio.h

main()

{

printf("Hello!");

}

后來(lái)學(xué)到

#include stdio.h

main()

{

int x;-----要用的變量,先聲明,

x=1;

printf("x=%d",x);----^.....

}

如此類推了,這樣不了解就可以運(yùn)行程序式式,我自己感覺(jué)還不錯(cuò),就是有時(shí)候,要寫(xiě)太多了.

C語(yǔ)言筆記(五)----struct,enum,typedef等

成員表列由若干個(gè)成員組成,每個(gè)成員都是該結(jié)構(gòu)的一個(gè)組成部分。

對(duì)每個(gè)成員也必須做類型聲明。

其形式為:

類型聲明符 成員名;

例如:

注意, 最后括號(hào)外面的;分號(hào)是不可少的 。

結(jié)構(gòu)定義之后,才可以進(jìn)行變量聲明。

凡聲明為結(jié)構(gòu) stu 的變量都由上述4個(gè)成員組成。

由此可見(jiàn),結(jié)構(gòu)是一種復(fù)雜的數(shù)據(jù)類型,是數(shù)目固定,類型不同的若干有序變量的集合。

聲明結(jié)構(gòu)變量 有以下三種方法。

使用上面定義的stu為例:

如:

也可以用宏定義使一個(gè)符號(hào)常量來(lái)表示一個(gè)結(jié)構(gòu)類型。例如:

例如:

這種形式的聲明的一般形式為:

例如:

這種聲明的一般形式為:

第三種方法與第二種方法的區(qū)別在于第三種方法中省去了結(jié)構(gòu)名,而直接給出結(jié)構(gòu)變量。

在程序中使用結(jié)構(gòu)變量時(shí),往往不把她作為一個(gè)整體來(lái)使用。

在ANSI C中除了允許有相同類型的結(jié)構(gòu)變量相互賦值以外,一般對(duì)結(jié)構(gòu)變量的使用,包括 賦值、輸入、輸出、運(yùn)算 等都是通過(guò)結(jié)構(gòu)變量的成員來(lái)實(shí)現(xiàn)的。

表示結(jié)構(gòu)變量成員的一般形式為:

結(jié)構(gòu)變量名.成員名

例如: boy1.num boy2.sex

如果成員本身又是一個(gè)結(jié)構(gòu),則必須逐級(jí)找到最低級(jí)的成員才能使用。如: boy1.birthday.month

結(jié)構(gòu)變量的賦值就是給各成員賦值。

數(shù)組的元素也可以是結(jié)構(gòu)類型的。

因此可以構(gòu)成結(jié)構(gòu)型數(shù)組。

初始化賦值:

當(dāng)然也可以在定義 stu結(jié)構(gòu) 時(shí)同時(shí)聲明 pstu。

賦值是把結(jié)構(gòu)變量的首地址賦予該指針變量,不能把結(jié)構(gòu)名賦予該指針變量。

如果 boy 是被聲明為 stu類型 的結(jié)構(gòu)變量。

則:

有了結(jié)構(gòu)指針變量,就能更方便地訪問(wèn)結(jié)構(gòu)變量的各個(gè)成員。

其訪問(wèn)的一般形式為:

(*結(jié)構(gòu)指針變量).成員名

結(jié)構(gòu)指針變量-成員名

例如: (*pstu).num 或 pstu-num

例如:

介紹數(shù)組的時(shí)候,曾介紹過(guò)數(shù)組的長(zhǎng)度是預(yù)先定義好的,在整個(gè)程序中固定不變。

C語(yǔ)言中不允許動(dòng)態(tài)數(shù)組類型。

例如:

但是又有此需求,為了解決這個(gè)問(wèn)題,C語(yǔ)言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要?jiǎng)討B(tài)地分配內(nèi)存空間,也可把不再使用的空間回收待用,為有效地利用內(nèi)存資源提供了手段。

常用的內(nèi)存管理函數(shù)有3個(gè):

例子:分配一塊區(qū)域,輸入一個(gè)學(xué)生數(shù)據(jù)

上面的例子采用了動(dòng)態(tài)分配的辦法為一個(gè)結(jié)構(gòu)分配內(nèi)存空間。

每一次分配一塊空間可用來(lái)存放一個(gè)學(xué)生的數(shù)據(jù),我們可稱之為一個(gè)節(jié)點(diǎn)。

有多少個(gè)學(xué)生就應(yīng)該申請(qǐng)分配多少塊內(nèi)存空間,也就是說(shuō)要建立多少個(gè)節(jié)點(diǎn)。

當(dāng)然用結(jié)構(gòu)數(shù)組也可以完成上述工作,但如果預(yù)先不能準(zhǔn)確把握學(xué)生人數(shù),也就無(wú)法確定數(shù)組大小。

而且當(dāng)學(xué)生留級(jí)、退學(xué)之后也不能把該元素占用的空間從數(shù)組中釋放出來(lái)。

用動(dòng)態(tài)存儲(chǔ)的方法可以很好地解決這些問(wèn)題。

有一個(gè)學(xué)生就分配一個(gè)節(jié)點(diǎn),無(wú)須預(yù)先確定學(xué)生的準(zhǔn)確人數(shù),某學(xué)生退學(xué),可刪去該節(jié)點(diǎn),并釋放該節(jié)點(diǎn)占用的存儲(chǔ)空間,從而節(jié)約了寶貴的內(nèi)存資源。

另一方面,用數(shù)組的方法必須占用一塊連續(xù)的內(nèi)存區(qū)域。

而使用動(dòng)態(tài)分配時(shí),每個(gè)節(jié)點(diǎn)之間可以是不連續(xù)的(節(jié)點(diǎn)內(nèi)是連續(xù)的)。

節(jié)點(diǎn)之間的關(guān)系可以用指針實(shí)現(xiàn)。

即在節(jié)點(diǎn)結(jié)構(gòu)中定義一個(gè)成員項(xiàng)來(lái)存放下一節(jié)點(diǎn)的首地址,這個(gè)用于存放地址的成員,常把他稱為指針域。

可在第一個(gè)節(jié)點(diǎn)的指針域內(nèi) 存入第二個(gè)節(jié)點(diǎn)的首地址,在第二個(gè)節(jié)點(diǎn)的指針域內(nèi) 又存入第三個(gè)節(jié)點(diǎn)的首地址,如此串聯(lián)下去直到最后一個(gè)節(jié)點(diǎn)。

最后一個(gè)節(jié)點(diǎn)因無(wú)后續(xù)節(jié)點(diǎn)連接,其指針域可賦值 0

這種連接方式,在數(shù)據(jù)結(jié)構(gòu)中稱為“鏈表”。

鏈表的基本操作主要有以下幾種:

例子:建立一個(gè)三個(gè)節(jié)點(diǎn)的鏈表,存放學(xué)生數(shù)據(jù)。為簡(jiǎn)單起見(jiàn),我們假定學(xué)生數(shù)據(jù)結(jié)構(gòu)中只有學(xué)號(hào)和年齡兩項(xiàng)??删帉?xiě)一個(gè)建立鏈表的函數(shù)create。程序如下:

create函數(shù) 用于建立一個(gè)有 n個(gè)節(jié)點(diǎn) 的鏈表,他是一個(gè)指針函數(shù),他返回的指針指向 stu結(jié)構(gòu)。

在create函數(shù)內(nèi)定義了三個(gè) stu結(jié)構(gòu) 的指針變量。

head為頭指針,pf為指向兩相鄰節(jié)點(diǎn)的前一節(jié)點(diǎn)的指針變量。

pb為后一節(jié)點(diǎn)的指針變量。

枚舉是一種 基本數(shù)據(jù)類型 ,而不是一種 構(gòu)造類型 ,因?yàn)樗荒茉俜纸鉃槿魏位绢愋汀?/p>

enum 枚舉名{ 枚舉值表 };

例如: enum weekday { sun,mou,tue,wed,thu,fri,sat };

enum weeakday a,b,c;

或者為:

enum weekday { sun,mou,tue,wed,thu,fri,sat }a,b,c;

或者為:

enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

例子:

說(shuō)明:

只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接賦予枚舉變量。如:

a=sun;b=mon; 是正確的

a=0;b=1; 是錯(cuò)誤的。

如果一定要把數(shù)值賦予枚舉變量,則必須使用強(qiáng)制類型轉(zhuǎn)換。

如: a=(enum weekday)2;

還應(yīng)該說(shuō)明的是枚舉元素不是字符常量也不是字符串常量,使用時(shí)不要加單、雙引號(hào)。

例子:

typedef定義的一般形式為:

typedef 原類型名 新類型名

其中原類型名中含有定義部分,新類型名一般用大寫(xiě)表示,一般用大寫(xiě)表示,以便于區(qū)別。

有時(shí)也可用 宏定義 來(lái)代替 typedef 功能,但是 宏定義 是由 預(yù)處理 完成的,而 typedef 則是 在編譯時(shí) 完成的,后者更為靈活方便。

使用 typedef 定義數(shù)組、指針、結(jié)構(gòu)等類型將帶來(lái)很大的方便,不僅使書(shū)寫(xiě)簡(jiǎn)單而且使意義更加明確,因而增強(qiáng)了可讀性。

例如:

又如:

那么多的C語(yǔ)言函數(shù),怎么學(xué)啊,給個(gè)建議。

學(xué)習(xí)任何知識(shí),循序漸進(jìn)總是最好的方式。不幸的是,很多人明知這個(gè)道理,卻總是想走所謂的捷徑。如果你是一個(gè)剛剛開(kāi)始學(xué)習(xí)編程的中學(xué)生,或者你是一個(gè)剛剛進(jìn)入計(jì)算機(jī)學(xué)院的本科生,又或者你是一個(gè)決心在計(jì)算機(jī)領(lǐng)域有所建樹(shù)的初學(xué)者,你一定迫切地想知道,學(xué)習(xí)計(jì)算機(jī)技術(shù),究竟應(yīng)該從哪里下手。

我的建議是:數(shù)學(xué)、英語(yǔ)、C語(yǔ)言。

數(shù)學(xué)和英語(yǔ)的重要性已經(jīng)不需要我來(lái)強(qiáng)調(diào),大家也許從幼兒園就開(kāi)始學(xué)習(xí)它們了,請(qǐng)時(shí)刻把它們放在最重要的位置,無(wú)論你是否學(xué)習(xí)計(jì)算機(jī)。

為什么C語(yǔ)言如此重要?我們從學(xué)習(xí)方法開(kāi)始說(shuō)起。書(shū)本上描述的東西,倘若不經(jīng)過(guò)我們的親自實(shí)踐,是難以被徹底消化吸收的。計(jì)算機(jī)組成原理講解了浮點(diǎn)數(shù)的格式,如果我們能看到并分析內(nèi)存或寄存器中某個(gè)浮點(diǎn)數(shù)的表示,那比單純的紙上談兵要強(qiáng)一千倍;數(shù)據(jù)結(jié)構(gòu)與算法似乎很難,如果你能把書(shū)上的例子實(shí)現(xiàn)出來(lái),然后把習(xí)題做完,只需啃完一本好書(shū),你也可以是算法高手;操作系統(tǒng)原理其實(shí)不僅僅是原理,只有做一些內(nèi)核方面的實(shí)驗(yàn)才能真正有深刻理解;還有許多新潮的技術(shù),比如JavaEE、PHP、Ajax、.NET等等等等,很多高手學(xué)習(xí)這些技術(shù)只需要很短的時(shí)間,不必說(shuō),他們肯定是C語(yǔ)言的高手。C語(yǔ)言幾乎是一切計(jì)算機(jī)技術(shù)的通用工具,包括計(jì)算機(jī)的各種基本理論。沒(méi)有精通C語(yǔ)言的決心,就不要涉足計(jì)算機(jī)領(lǐng)域。

為什么是C語(yǔ)言而不是C++不是Java不是其它?因?yàn)镃語(yǔ)言最簡(jiǎn)單。你需要掌握一個(gè)語(yǔ)言工具,但也許并不需要“面向?qū)ο蟆?、“模板”、“函?shù)重載”等等一大堆概念。C語(yǔ)言足夠低級(jí),非常非常地貼近計(jì)算機(jī)的底層結(jié)構(gòu),不會(huì)讓你迷失在概念的汪洋大海。除了“指針”,C語(yǔ)言沒(méi)有真正意義上的難點(diǎn),而“指針”,恰恰是理解計(jì)算機(jī)底層結(jié)構(gòu)精髓的關(guān)鍵所在。

不必思考應(yīng)該學(xué)什么,等把C語(yǔ)言精通了,你自己便會(huì)知道下一步如何去走。如果你對(duì)操作系統(tǒng)內(nèi)部感興趣,你便可以試著研究一下Unix的內(nèi)核,除了C語(yǔ)言,你還需要一些匯編語(yǔ)言和保護(hù)模式的知識(shí);如果你對(duì)算法感興趣,那么恭喜你,C語(yǔ)言足夠使用了;如果你對(duì)Windows編程感興趣,去看看《Windows程序設(shè)計(jì)》吧,作者清楚的告訴你“只需要C語(yǔ)言的基礎(chǔ)”;如果你對(duì)任何其它語(yǔ)言感興趣,盡管去學(xué)吧,不過(guò)還是建議先學(xué)C++,因?yàn)槟阈枰恍懊嫦驅(qū)ο蟆钡闹R(shí)。

學(xué)習(xí)C語(yǔ)言不是一朝一夕的事情,但也不需要花費(fèi)十年時(shí)間才能精通。如何以最小的代價(jià)學(xué)習(xí)并精通C語(yǔ)言是本文的主題。請(qǐng)注意,即使是“最小的代價(jià)”,也絕不是什么捷徑,而是以最短的時(shí)間取得最多的收獲,同時(shí)也意味著你需要經(jīng)歷艱苦的過(guò)程。

一、要讀就讀好書(shū),否則不如不讀

所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材。好的開(kāi)始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì)幫你指定一本很差勁的C語(yǔ)言課本;而幸運(yùn)的是,你還可以再次選擇。

大名鼎鼎的譚浩強(qiáng)教授出了一本《C語(yǔ)言程序設(shè)計(jì)》,據(jù)說(shuō)發(fā)行量有超過(guò)400萬(wàn),據(jù)我所知,很多學(xué)校都會(huì)推薦這本書(shū)作為C語(yǔ)言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無(wú)比堅(jiān)定地黑他這本書(shū)的。這本書(shū)不是寫(xiě)給計(jì)算機(jī)專業(yè)的學(xué)生的,而是給那些需要考計(jì)算機(jī)等級(jí)考試的其它專業(yè)學(xué)生看的。這本書(shū)的主要缺點(diǎn)是:例子程序非常不專業(yè),不能教給你程序設(shè)計(jì)應(yīng)該掌握的思考方式;程序風(fēng)格相當(dāng)?shù)夭缓茫瑫?huì)讓你養(yǎng)成亂寫(xiě)代碼的惡習(xí);錯(cuò)誤太多,曾經(jīng)有人指出過(guò)這本書(shū)的上百個(gè)錯(cuò)誤,其中不乏關(guān)鍵的概念性錯(cuò)誤。好了,這本書(shū)我也不想說(shuō)太多了,有興趣大家可以百度一下:)

Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計(jì)語(yǔ)言》)堪稱經(jīng)典中的經(jīng)典,不過(guò)舊版的很多內(nèi)容都已過(guò)時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語(yǔ)言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書(shū),也沒(méi)有辦法面面俱到,所以手邊常備一本《C語(yǔ)言參考手冊(cè)》是十分必要的。《C語(yǔ)言參考手冊(cè)》就是《C Reference Manual》,是C語(yǔ)言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫(kù)函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語(yǔ)言的工具書(shū)。順便提一句,最新的《C程序設(shè)計(jì)語(yǔ)言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語(yǔ)言參考手冊(cè)》描述的是C99標(biāo)準(zhǔn),二者可能會(huì)有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫(xiě)得也是相當(dāng)?shù)夭诲e(cuò),英文名是《Pointers on C》,特別地強(qiáng)調(diào)指針的重要性,算是本書(shū)的一個(gè)特點(diǎn)吧。不過(guò)這本書(shū)并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過(guò)C語(yǔ)言,有那么一些C語(yǔ)言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書(shū)。我相信,只要你理解了指針,C語(yǔ)言便不再神秘。

如果你已經(jīng)啃完了一本C語(yǔ)言教材,想要更進(jìn)一步,那么有兩本書(shū)你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊(cè)子,內(nèi)容非常非常地有趣。要注意一點(diǎn),這本書(shū)是二十多年前寫(xiě)成的,里面提到的很多C語(yǔ)言的缺陷都已被改進(jìn),不過(guò)能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專家編程》),書(shū)如其名,這本書(shū)頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡(jiǎn)歷上寫(xiě)“精通C語(yǔ)言”了。

切記一個(gè)原則,不要讀自己目前還看不懂的書(shū),那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識(shí)。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書(shū)店尋找講述的這些內(nèi)容的書(shū)籍。把基礎(chǔ)知識(shí)補(bǔ)充完畢再回頭來(lái)學(xué)習(xí),才會(huì)真正的事半功倍。

c語(yǔ)言如何編寫(xiě)自己的函數(shù)

前面弄的那個(gè)格式錯(cuò)亂了!所以重新弄了一遍,這次應(yīng)該沒(méi)問(wèn)題了!

(1)無(wú)參函數(shù)的定義一般形式:

類型說(shuō)明符 函數(shù)名()

{

類型說(shuō)明符

語(yǔ)句

}

例如: void Hello()

{

printf("Hello,world");

}

(2)有參函數(shù)的定義一般形式:

類型說(shuō)明符 函數(shù)名(形式參數(shù)表)

{

類型說(shuō)明符

語(yǔ)句

}

例如: int max(int a,int b)

{

if(ab)

return a;

else

return b;

}

其中類型說(shuō)明符指明了本函數(shù)的類型,函數(shù)的類型實(shí)際上是函數(shù)返回值的類型,它們通常是C語(yǔ)言的

基本數(shù)據(jù)類型.


本文名稱:C語(yǔ)言函數(shù)筆記方法,c語(yǔ)言函數(shù)的使用方法
文章位置:http://weahome.cn/article/dscpojp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部