freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言課件--閱讀頁

2024-08-23 23:42本頁面
  

【正文】 第 55 頁 例 815 編寫函數(shù),利用全局變量求一維數(shù)組中正數(shù)的平均值和負(fù)數(shù)的平均值傳遞給調(diào)用函數(shù)輸出。 void saver(int array[ ],int n) { int i,z=0,f=0。 in 。z++。f++。 if(f!=0) faver=faver/f。 saver(a,10)。 } 共 90 頁 第 56 頁 下面程序的運(yùn)行結(jié)果是( )。 void sub(int x,int y) { x1=x。y=x1。 sub(x3,x4)。 printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2)。 ? 動(dòng)態(tài)存儲(chǔ)方式: 程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間的方式。一個(gè)程序兩次調(diào)用同一函數(shù),其中同一個(gè)局部變量的內(nèi)存地址可能不同。 變量存貯類型有四種: ◆ 自動(dòng)變量( auto) ◆ 靜態(tài)變量( static) ◆ 外部變量( extern) ◆ 寄存器變量( register) auto、 static、 extern和 register為存貯類型說明符。 定義形式: [auto] 類型說明符 變量名 ; 說明: 例如: int b, c=3 等價(jià)于 auto int b, c=3。 共 90 頁 第 60 頁 ( 2)局部靜態(tài)變量 定義形式: 在變量名前面加 關(guān)鍵字 static static 類型說明符 變量名; ?局部靜態(tài)變量編譯時(shí)賦初值,每次調(diào)用時(shí)不賦初值,只保留調(diào)用結(jié)束時(shí)變量的值。 局部靜態(tài)變量只允許所在函數(shù)引用,其它函數(shù)不能引用。 ?自動(dòng)變量不賦初值,其值 不確定 。 共 90 頁 第 61 頁 例如: int f(int a) { int b=0。 b=b+1。 return( a+b+c)。 for(i=0。 i++) printf(“%d,” ,f(a))。 i+=m+1。 return m。 printf(%d, , fun(a,b))。 } 8,17 運(yùn)行結(jié)果: 共 90 頁 第 63 頁 ( 3)寄存器變量 (register) 直接放置在運(yùn)算器的寄存器中的變量稱為寄存器變量 . 定義形式: register 類型說明符 變量名; 作用: 對于使用頻繁的變量,定義為寄存器變量,不必從內(nèi)存而是直接從寄存器中取出參加運(yùn)算,提高程序執(zhí)行效率。 ?屬于 動(dòng)態(tài) 存儲(chǔ)方式,函數(shù)開始調(diào)用時(shí)為變量分配寄存器空間,函數(shù)結(jié)束時(shí)釋放寄存器空間。 ?可用于變量空間分配的寄存器個(gè)數(shù)依賴于具體的機(jī)器。 共 90 頁 第 64 頁 2. 全局變量的存儲(chǔ)類型(外部全局變量、靜態(tài)全局變量) ( 1)外部全局變量 在多個(gè)源程序文件的情況下,如果在一個(gè)文件中要引用在其它文件中定義的全局變量,則應(yīng)該在需要 引用此變量的文件中 ,用 extern做說明。 main( ) { x=6。 } void f1( ) { a+=2。 f2( )。 void f2( ) { a++。 } 共 90 頁 第 65 頁 ( 2)靜態(tài)全局變量 在 一個(gè)文件中定義的全局變量僅限于本文件引用,而不能被其它文件訪問 ,則可以定義 為靜態(tài) 全局變量 。 說明: ?外部全局變量與靜態(tài)全局變量在同一文件內(nèi)的作用域一樣 ?外部全局變量可以被多個(gè)文件引用,而靜態(tài)全局變量僅在定義它的文件內(nèi)有效,在程序的其它文件中不可使用。 static int a只能用于 , 雖然 同名變量 int a說明為 extern,但仍無法使用 中的 a變量。 定義格式 : static 類型標(biāo)識符 函數(shù)名(形參表)函數(shù)體 例如: static int fun(a, b) { } 作用 : 函數(shù)的作用域限于所在文件,不同文件中同名函數(shù)互不干擾,便于程序的格式化。 定義格式 : [extern] 類型標(biāo)識符 函數(shù)名(形參表)函數(shù)體 例如: extern int fun(int a, int b) { } 或 int fun(int a, int b) { } 通常不加 static 標(biāo)識符的函數(shù)都是外部函數(shù)。 ?作用域 C語言規(guī)定,標(biāo)號的作用域 僅為定義標(biāo)號的函數(shù) ,即不允許用 goto語句從一個(gè)函數(shù)轉(zhuǎn)向另一個(gè)函數(shù)。 (VC++指定函數(shù)類型) 5 不需返回任何返回值時(shí),應(yīng)定義無類型 void。 共 90 頁 第 71 頁 1 函數(shù)可以作 運(yùn)算分量 ,作其他函數(shù)的 參數(shù) ,可構(gòu)成 語句 2 函數(shù)調(diào)用可以 嵌套 3 函數(shù)中的 return語句 可以帶回一個(gè)返回值 有關(guān)變量 從變量的作用域: 局部變量 全局變量 從變量值保留的期限: 靜態(tài)存儲(chǔ)變量 動(dòng)態(tài)存儲(chǔ)變量 從變量在硬件上的位置: CPU寄存器 內(nèi)存中靜態(tài)區(qū) 內(nèi)存中動(dòng)態(tài)區(qū) 有關(guān)函數(shù)的調(diào)用 共 90 頁 第 72 頁 存儲(chǔ)特性 特點(diǎn) 生存期 作用域 未初始化時(shí)值 自動(dòng)變量 定義它的函數(shù) (局部變量) 隨機(jī)數(shù) 外部變量 整個(gè)程序中多個(gè)文件中的多個(gè)函數(shù)(全程變量 ) 0 靜 態(tài) 局部 全局 整個(gè)程序 定義它的函數(shù)(靜態(tài)局部) 定義它的文件(靜態(tài)全程) 0 0 寄存器變量 定義它的函數(shù) 隨機(jī)數(shù) 共 90 頁 第 73 頁 : …… int plus(int x,int y) { int z。 return z。 : include _____A______ main() { int a=4,b=5,c。 c=plus(a,b)。 } [答案 ] A: “” B: extern 共 90 頁 第 74 頁 [例 ] 下面程序由兩個(gè)文件組成,請分析運(yùn)行結(jié)果。 extern void sub() 。 y=10+x。 printf(add:y=%d。 } main() { x+=5。 sub()。 main:y=%d\n,x,y)。 void sub() { int y=5。 printf(“sub:y=%d。 } 運(yùn)行結(jié)果: 共 90 頁 第 75 頁 C的源程序 預(yù)處理 編譯 目標(biāo)程序 ( *.C) _______________ (*.OBJ) 編譯系統(tǒng)中有 : 預(yù)處理程序 編譯程序 ?宏替換 define N 20 ?文件包含 include ?條件編譯 if( ... ) ? C中的預(yù)處理命令 分類 編譯預(yù)處理 共 90 頁 第 76 頁 宏定義有兩種類型 : 字符串替換和帶參數(shù)的宏替換 ( 1) 字符串宏替換 ? 功能: 在預(yù)處理時(shí) ,將程序中宏定義之后出現(xiàn)的所有的宏名 ,用宏替換體代替。 共 90 頁 第 77 頁 ? 用途 : 提高程序的可讀性,便于修改、調(diào)試。 } 結(jié)果: PI= main( ) { printf(“PI=%s\n”,”PI”)。 ? 格式: define 宏名(參數(shù)表) 表達(dá)式 ? 功能 : 帶參數(shù)的宏將一個(gè) 帶形參 的表達(dá)式定義為一個(gè)帶參數(shù)的宏名,預(yù)處理程序?qū)Τ绦蛑兴?帶實(shí)參 表的宏名進(jìn)行 宏展開 替換, 用表達(dá)式代替宏名,用參數(shù)表中的實(shí)參代替表達(dá)式中對應(yīng)的形參 。 * 對常用的格式輸入輸出函數(shù) printf可以進(jìn)行宏定義,使程序簡化 *宏名與參數(shù)的圓括號之間不能有空格 s (a,b) ? ? 說明: * 宏定義命令要求在一行內(nèi)寫完,如換行,用“ \”表示下一行繼續(xù)。 define PI define S(r) PI*r*r main() { float a=,area。 printf(“r=%f\narea=%f\n”,a,area)。 共 90 頁 第 82 頁 [例 2] 求下列語句的循環(huán)次數(shù)。 for(i=1。i++) {n++。 } } 8 共 90 頁 第 83 頁 函數(shù)要求形參,實(shí)參有類型(相同) 宏的形參,實(shí)參不要求類型,僅是符號 函數(shù)需事先計(jì)算實(shí)參表達(dá)式的值,再代入形參 宏展開中不求表達(dá)式的值,僅替換 , 沒有值傳遞 函數(shù)是在運(yùn)行時(shí)處理 宏是在編譯之前進(jìn)行 ?帶參數(shù)的宏與函數(shù)的區(qū)別 函數(shù)調(diào)用影響運(yùn)行時(shí)間,源程序無變化 宏展開影響編譯時(shí)間,通常使源程序加長 函數(shù)調(diào)用有一個(gè)返回值 宏可以有多個(gè)結(jié)果 共 90 頁 第 84 頁 文件包含是指一個(gè)程序文件將另一個(gè)指定文件的全部內(nèi)容包含進(jìn)來。 (注: 只能包含 ASCII文本文件。 ? 說明 共 90 頁 第 85 頁 ? 只包含源文件 ,不包含可執(zhí)行文件和目標(biāo)文件。 ? 程序員可將工作中積累的有價(jià)值的符號 ,帶參數(shù)的宏定義 ,或一些外部變量 ,通用的子程序定義成一個(gè)文件 ,需要時(shí) ,包含進(jìn)源程序。 共 90 頁 第 87 頁 3. 條件編譯 條件編譯命令的形式 常用的形式: 形式一: ifdef 宏名 程序段 1; else 程序段 2; endif 功能: 如果之前定義過宏名,直接選擇程序段 1進(jìn)行編譯,否則選擇程序段 2進(jìn)行編譯。 共 90 頁 第 88 頁 形式二: ifndef 宏名 程序段 1; else 程序段 2; endif 其中, ifndef語句的功能與 ifdef相反,如果宏名 未定義則編譯程序段 1,否則編譯程序 2。 如果沒有 else部分 , 則當(dāng) “ 常數(shù)表達(dá)式 ” 的值為 0時(shí) , 直接跳過 endif。 include main() { if NULL printf(NULL is nonzero value!\n)。 endif } 運(yùn)行結(jié)果: NULL is zero value!
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1