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

正文內(nèi)容

c程序設(shè)計(jì)教程(下)林小茶編ppt(編輯修改稿)

2025-01-03 21:47 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ()。 int sum。 void main() { int i。 for (i=1。i=100。i++) sum=sum+i。 output()。 } void output() { printf(\n sum=%d,sum)。 } 2.作用域 作用域是指可以有效存取該變量的區(qū)域 , 而不會(huì)引起編譯錯(cuò)誤 , 或者說在該區(qū)域內(nèi)不 會(huì)產(chǎn)生無效引用 。 自動(dòng)變量的作用域在定義它的分程序中 , 并且是在定義以后才能使用 。 外部變量的作用域是從定義的地方到該 源程序的結(jié)束全程有效 。 一般應(yīng)將外部變量 定義在程序的首部 , 所有函數(shù)的前面 。 例 x 到 y之間的所有偶數(shù) 。 include void main() { void fun(int a,int b)。 int x=5,y=10。 printf(\n)。 fun(x,y)。 } void fun(int a,int b) { int x。 for (x=a。x=b。x++) if (x%2==0) printf(%d ,x)。 } 3.生存期 自動(dòng)變量存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中 , 是被動(dòng)態(tài) 分配存儲(chǔ)空間的 。 在函數(shù)開始執(zhí)行時(shí) , 系統(tǒng) 會(huì)為函數(shù)中所有的自動(dòng)變量分配存儲(chǔ)空間 , 在函數(shù)調(diào)用結(jié)束時(shí)系統(tǒng)還會(huì)自動(dòng)回收這些存 儲(chǔ)空間 。 因此 , 可以說自動(dòng)變量是沒有 “ 記憶 ” 的 。 外部變量存放在靜態(tài)存儲(chǔ)區(qū) , 在程序開始執(zhí) 行時(shí)分配固定的存儲(chǔ)區(qū) , 整個(gè)程序執(zhí)行完畢才釋 放 。 外部變量的生存期屬于程序期 , 既程序在內(nèi) 存存在整個(gè)期間 , 外部變量始終存在 , 可以說 , 外部變量是有記憶的 。 4.初始化 自動(dòng)變量不能做初始化 。 因?yàn)樽詣?dòng)變量是動(dòng) 態(tài)分配的空間 , 不能預(yù)先為內(nèi)存空間設(shè)定一個(gè)值 。 外部變量可在定義的時(shí)候初始化 , 初始化只 能進(jìn)行一次 , 不可多次初始化 , 若定義時(shí)未明確 地初始化外部變量 , 該外部變量將由系統(tǒng)將其初 始化為 0。 例 。 include int m。 int p=1。 void main() { int mul()。 printf(\n)。 for (。m=3。m++) printf(%3d,mul())。 } int mul() { int i。 for (i=1。i=m。i++) p=p*i。 return (p)。 } 5.外部變量的說明 外部變量的定義只對(duì)位置在它的定義語句之 后定義的函數(shù)內(nèi)有效 , 如果想讓在它的定義之前 定義的函數(shù)也能使用它 , 需要對(duì)外部變量的進(jìn)行 說明 。 說明外部變量的語法是: extern 數(shù)據(jù)類型 變量名; 數(shù)據(jù)類型要與定義外部變量時(shí)一致 , 也可以省略不寫 。 例 外部變量的說明 。 include extern m。 /*說明外部變量 m*/ int p=1。 void main() { int mul()。 printf(\n)。 for (。m=3。m++) printf(%3d,mul())。 } int m。 /*定義外部變量 m*/ int mul() { int i。 for (i=1。i=m。i++) p=p*i。 return (p)。 } 6.使用外部變量的原因 第一個(gè)原因是初始化方便 , 自動(dòng)變量在定義 以后的值是不定值 , 系統(tǒng)不負(fù)責(zé)初始化 , 而對(duì)定 義的外部變量會(huì)自動(dòng)的初始化為 0。 第二個(gè)原因是方便函數(shù)間進(jìn)行交流數(shù)據(jù) , 各 個(gè)函數(shù)共享外部變量 , 解決了函數(shù)返回多個(gè)值的 問題 。 第三個(gè)原因外部變量作用域廣 , “ 壽命 ” 長(zhǎng) , 有記憶能力 。 靜態(tài)變量可分為內(nèi)部靜態(tài)變量和外部靜態(tài)變量 。 1. 定義方式 內(nèi)部靜態(tài)變量在函數(shù)體內(nèi)定義 , 外部靜態(tài) 變量在函數(shù)之外定義 。 定義的語法格式相同 , 都是在類型名前冠以關(guān)鍵字 static。 static 類型 變量名; 靜態(tài)變量 2. 作用域 內(nèi)部靜態(tài)變量的作用域僅在定義它的函 數(shù)和分程序內(nèi)有效 , 這點(diǎn)與自動(dòng)變量相同 。 外部靜態(tài)變量的作用域是在定義它的同 一源文件中 , 同一源文件的各個(gè)函數(shù)可以共 享該變量 , 其它源文件則不能訪問它 。 3.生存期 由于靜態(tài)變量是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)的 , 因 此無論是內(nèi)部靜態(tài)變量還是外部靜態(tài)變量都 是永久性存儲(chǔ) 。 即使程序退出函數(shù)的執(zhí)行 , 該函數(shù)的內(nèi)部靜態(tài)變量也仍然不被系統(tǒng)釋放 , 靜態(tài)變量 “ 記憶 ” 的數(shù)不會(huì)發(fā)生改變 。 4.初始化 內(nèi)部靜態(tài)變量和外部?jī)?nèi)部靜態(tài)變量都可 以進(jìn)行初始化 。 定義時(shí)給出初始化值 , 編譯 程序用該值對(duì)靜態(tài)變量進(jìn)行一次性的初始化 。 若未在程序中進(jìn)行初始化 , 系統(tǒng)以 0 對(duì)變量進(jìn) 行初始化 。 例 。 include int m。 void main() { int mul()。 printf(\n)。 for (。m=3。m++) printf(%3d,mul())。 } int mul() { int i。 static int p=1。 for (i=1。i=m。i++) p=p*i。 return (p)。 } 1. 定義方式 在函數(shù)內(nèi)部定義或作為函數(shù)的形式參數(shù) 。 語法格式: register 類型 變量名; 例如: register int x。 寄存器變量 2.作用域、生存期和初始化 寄存器變量的作用域 、 生存期和初始化與自動(dòng)變量基本相同 。 但是有以下的限制: ① 寄存器變量的實(shí)現(xiàn)與硬件配置有關(guān) 只有很少的變量可以保存在寄存器中 。 ② register說明只適用于自動(dòng)變量和函數(shù)的形參 。 void f(register int c,int n) { register int i。 … . } ③ 不允許取寄存器變量的地址 。 下列程序段 是錯(cuò)誤的 。 register int i。 scanf(%d,amp。i)。 /*錯(cuò)誤 /* 預(yù)處理命令 include “ 是一條預(yù)處理命令 。 以 “ ”號(hào)開頭的命令都是預(yù)處理命令 , 注 意 , 它們不是 C語言的可執(zhí)行命令 。 預(yù)處理命令除了以 開頭以區(qū)別于 C命令 , 一條預(yù)處理命令獨(dú)占一行 一般不以 “ ; ” 作為結(jié)束標(biāo)志 宏定義 定義命令的關(guān)鍵字是 define。 使用宏定義的一般形式為: define 標(biāo)識(shí)符 字符串 例如 , define PI 編譯預(yù)處理程序會(huì)將該源程序中所有的 PI都用 。 PI是宏名 。 1.不帶參數(shù)的宏 define 標(biāo)識(shí)符 字符串 define是宏定義命令, “ 標(biāo)識(shí)符 ” 是所定義 的宏名, “ 字符串 ” 是將要替換程序中所有的宏 名的常數(shù)、表達(dá)式或格式串等。 例 編寫兩個(gè)函數(shù)分別求球的表面積和球的體積 , 在主函數(shù)中調(diào)用它們 。 include define PI double Area_of_sphere(double r) /*求球的表面積的函數(shù) */ { return 4*PI*r*r。 } double Volume_of_sphere(double r) /*求球的體積的函數(shù) */ { return *PI*r*r*r。 } void main() { double r。 printf(\nEnter radius of sphere:)。 /*提示用戶輸入球的半徑 */ scanf(%lf,amp。r)。 /*接收輸入 */ printf(\n Area of sphere is %lf., Area_of_sphere(r))。 /*輸出球的表面積 */ printf(\n Volume of sphere is %lf., Volume_of_sphere(r))。 /*輸出球的體積 */ } 對(duì)于不帶參數(shù)的宏 , 使用時(shí)要注意以下幾點(diǎn): (1) 在習(xí)慣上 , 宏名使用大寫字母書寫 , 表示與 普通變量名的區(qū)別 , 但是小寫字母也沒有錯(cuò) 。 (2) 對(duì)于宏定義中的字符串在語法上沒有任何限 制 , 預(yù)處理程序?qū)λ蛔魅魏螜z查 。 所以 , 程序 員就要注意檢查替換以后會(huì)不會(huì)出現(xiàn)語法錯(cuò)誤 。 例如 , 不要輕易在語句結(jié)尾寫分號(hào) 。 (3) 宏定義只做簡(jiǎn)單替換 , 注意要保證簡(jiǎn)單替換 的運(yùn)算邏輯是正確的 。 例 判斷下面程序的運(yùn)行結(jié)果 。 include define f 2+a void main() { int a=8。 printf(\n%4d,f*f)。 } (4) C程序中的字符串常量和字符常量中的宏名是 不做宏替換的 。 (5) 不要將宏名用雙引號(hào)或單引號(hào)括起來 , 宏名 的使用要符合用戶定義字的規(guī)定 。 (6) 宏定義的作用域?yàn)閺暮甓x命令下面的語句 到該源程序結(jié)束 , 宏定義的位置在函數(shù)之外 。 可 以使用 undef命令終止已經(jīng)經(jīng)過定義的宏的作用 域 。 (7) 宏定義可以嵌套 。 在一個(gè)宏定義的字符串中 可以使用在它前面已經(jīng)定義過的宏名 , 在宏替換 的過程中層層展開 。 例 判斷下面程序的運(yùn)行結(jié)果 。 define A good include void main() { printf(\nA)。 } define PI define r 2 define s (PI)*(r)*(r) printf( %f,s)。 最終將被替換為: printf( %f,()*(2)*
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1