1、在函數(shù)體之內(nèi)的i和函數(shù)體之外的i是存放在兩個內(nèi)存位置的,在內(nèi)部能夠看到的是內(nèi)部生存期的。建議你去看下變量在函數(shù)的生存期和內(nèi)存中的位置,會有更深刻的理解。
成都創(chuàng)新互聯(lián)于2013年開始,先為樊城等服務(wù)建站,樊城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為樊城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
2、主函數(shù)都是用來調(diào)用子函數(shù)的,所以不需要在主函數(shù)內(nèi)定義函數(shù)。那么當(dāng)然是你的程序比較復(fù)雜,需要用到其他子函數(shù)才能實現(xiàn),或者說可以簡化程序時就需要在主函數(shù)外定義函數(shù)了啊。
3、定義在函數(shù)體里面的為局部變量,定義在函數(shù)體以外的為全局變量,局部變量的有效期只在該函數(shù)內(nèi)有效,全局變量在整個程序中有效。
4、把變量定義在主函數(shù)之外,即把變量設(shè)置為全局的。一般我們都把變量的定義放在函數(shù)中,因此變量的范圍就是在本函數(shù)中。可是如果定義在所有函數(shù)的外面,這樣所有的函數(shù)中,都可以使用本變量。你可以試一下這個程序。
1、定義為局部變量不會隨程序調(diào)用執(zhí)行結(jié)束而釋放,且定義賦初值的語句只在函數(shù)第一次調(diào)用執(zhí)行。局部靜態(tài) 作用域:從定義開始到函數(shù)結(jié)束。(實際函數(shù)將靜態(tài)地址做返回值返回,函數(shù)結(jié)束也能使用該地址)生命期:從定義到程序結(jié)束。
2、自動變量隨著函數(shù)的使用與否創(chuàng)建消失;寄存器變量分配在cpu中,沒有內(nèi)存地址;靜態(tài)變量占用固定存儲單元,在程序執(zhí)行過程不釋放,直到程序運行結(jié)束。
3、Extern外部變量:在函數(shù)外部定義的全局變量,作用域開始于變量定義,結(jié)束于程序文件的結(jié)束。我們可以extern來聲明外部變量來擴展它的作用域。同一個文件內(nèi),extern聲明之后就可以作用域擴大到聲明處到文件結(jié)束。
4、作用域有三種: extern(外部的) 這是在函數(shù)外部定義的變量的缺省存儲方式。extern變量的作用域是整個程序。
全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。 它不屬于哪一個函數(shù),它屬于一個源程序文件。其作用域是整個源程序。在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明。 只有在函數(shù)內(nèi)經(jīng)過說明的全局變量才能使用。
一個函數(shù)內(nèi)部定義的變量稱為局部變量即內(nèi)部變量,它存放于動態(tài)存儲區(qū),在函數(shù)外部定義的變量稱為外部變量即全局變量,它存放于靜態(tài)存儲區(qū)。
外部變量也是全局變量,被定義成外部變量是指這個變量沒有在當(dāng)前代碼中,而是在另一個代碼或二進(jìn)制文件中。
main函數(shù)里定義的是局部變量,只是在main函數(shù)里有效。如果程序里有多個函數(shù),定義的全局變量在這些函數(shù)里都可以使用,而在main中定義的只能在main中使用,其他函數(shù)不可以直接調(diào)用。
當(dāng)前標(biāo)題:c語言在函數(shù)外定義了 c語言中在一個函數(shù)的內(nèi)部可以再定義另一個函數(shù)
分享鏈接:http://chinadenli.net/article35/dejjdsi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、虛擬主機、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)