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

正文內(nèi)容

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

2025-01-03 21:47 本頁面
 

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