C程序设计课件.ppt

C程序设计课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*結論:局部靜態變數在靜態存儲區內分配存儲單元,在整個程式運行期間都不釋放;局部靜態變數賦初值在編譯時只進行一次(例8-17);靜態變數不賦初值自動賦0;局部靜態變數在調用函數結束後仍然存在,但其他函數不能引用它;靜態存儲缺點:佔用存儲空間;降低程式可讀性。*Register變數registerintk;則給變數k分配的空間為某個寄存器。優點:速度快。只有局部變數和形參可以定義為register變數。因為機器的寄存器數量有限,因此該類型不常用。*外部變數(extern)外部變數屬於靜態存儲方式:靜態外部變數──只允許被本源檔中的函數引用定義格式為:static數據類型外部變數表;非靜態外部變數──允許被其他原始檔案中的函數引用定義時缺省關鍵字static的外部變數,即為非靜態外部變數。其他原始檔案中的函數,引用非靜態外部變數時,需要在引用函數所在的原始檔案中進行說明:extern數據類型外部變數表;*務必牢記:關鍵字“static”在不同的地方所起的作用是不同的!把局部變數改變為靜態內部變數後,改變了它的存儲方式,即改變了它的生存期。把外部變數改變為靜態外部變數後,改變了它的作用域,限制了它的使用範圍。函數*2、調用函數過程:1)給形參分配存儲單元,將實參的值傳遞給形參,再將控制流程轉到被調函數;2)然後執行被調函數。3)當執行到return語句,或執行到函數體最後一個大花括弧時,控制流程返回到主調函數的中斷點處繼續執行主調函數。同時釋放形參佔用存儲單元。*參數傳遞:實參與形參的結合形參:定義函數時的參數,作用是:該函數被調用時用來接收實參的值.此時的參數無具體的值,僅表示參數的類型、個數、以及在函數體內對其如何處理。實參:調用函數時的參數為實參,它表示該函數要處理的數據資訊。實參必須有確定的值。調用時,將實參的值傳給形參。調用函數時,實參與形參的類型、個數必須完全一致!*“參數傳遞”舉例swap(intx,inty){intt;t=x;x=y;y=t;printf(“x=%d,y=%d\n”,x,y);}main(){inta,b;a=5;b=8;swap(a,b);printf(“a=%d,b=%d”,a,b);}5b8a5yx8調用前調用開始時調用結束後8yx5參數的傳遞是單向的,只能由實參傳給形參,在被調函數中對形參的改變的不影響實參的值。*3、函數的返回值:函數返回的實現:1)函數體中通過執行return語句返回,格式有3種:return(運算式);或return運算式;或return;2)若函數體中無return語句,當執行到函數末尾時自動返回到調用函數。注意:1)函數的返回值最多只有一個;2)當需要返回多個值時,用return語句無法實現,只能通過傳地址調用實現。*函數調用練習設計一個函數計算n!設計一個函數求s=1+2+…+10試著將2、3結合起來:計算S=1!+2!+3!+……+10!函數*8-2-4函數的嵌套調用所謂嵌套調用,就是在調用一個函數的過程中,又調用另一個函數。即:函數A中調用函數B,函數B中又調用函數C。例如:main(){printf(“sum=%d\n”,total(5));}inttotal(intn){inti,s=0;for(i=1;i=n;i++)s=s+fac(i);return(s);}intfac(intn){inti,s=1;for(i=1;i=n;i++)s=s*i;return(s);}*例8.6嵌套調用實例.f(intx){intt;t=x+x;return(t);}g(inta,intb){intz;z=f(a*b);return(z);}main(){intx1=3,x2=4,y;y=g(x1,x2);printf(“y=%d\n,y);}計算過程:y=g(3,4)=f(3*4)=f(12)=12+12=24*函數調用過程在main函數中調用g();執行g()函數的的過程中調用f();執行完f()函數後返回到g()接著執行;執行完g()後返回到main().*例8.7編寫函數,驗證陳景潤研究的哥德巴赫猜想:任意大偶數為兩個素數之和並輸出這兩個素數(所謂大偶數是指6開始的偶數)。分析:isp

文档评论(0)

157****3839 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档