1、兩者的區(qū)別只在于作用域和生存周期。main函數(shù)是一個進程的入口,此外,和別的函數(shù)無區(qū)別。main函數(shù)里定義的是局部變量,只是在main函數(shù)里有效。
站在用戶的角度思考問題,與客戶深入溝通,找到商水網(wǎng)站設計與商水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋商水地區(qū)。
2、在函數(shù)體之內(nèi)的i和函數(shù)體之外的i是存放在兩個內(nèi)存位置的,在內(nèi)部能夠看到的是內(nèi)部生存期的。建議你去看下變量在函數(shù)的生存期和內(nèi)存中的位置,會有更深刻的理解。
3、這個是編譯器的原因,不是c語言的規(guī)定。你用的是 visual stduio 吧。用gcc dev c++ 和以前的VC++都不會要求這樣,而vs有這個要求。
1、你寫的只是引用,也可以說讀取是可以的,但不能修改。
2、不大明白你的意思!在函數(shù)中定義的變量,其作用域只是在該函數(shù)里,其他函數(shù)想使用這個變量,需要通過其他方式,不能直接使用變量名字來訪問這個變量。作用域規(guī)定的是名字的適用范圍。
3、在整個工程文件內(nèi)都有效;“在函數(shù)外定義的變量”,即從定義變量的位置到本源文件結(jié)束都有效。由于同一文件中的所有函數(shù)都能引用全局變量的值,因此如果在一個函數(shù)中改變了全局變量的值, 就能影響到其他函數(shù)中全局變量的值。
4、是的。在函數(shù)內(nèi)部定義的變量,稱之為局部變量。局部變量的作用域,也就是有用的范圍,是從定義位置開始,到所在大括號結(jié)束。如 int func(){ int i = 10; //i的定義位置。
5、是的。函數(shù)體內(nèi)部定義的變量,作用域 為函數(shù)體內(nèi)部。文件中定義的全局變量,作用域為整個文件。使用static 定義的文件內(nèi)部全局變量只能在文件內(nèi)部訪問,未使用static 定義的,可以在其他文件中使用extern,對變量進行訪問。
6、函數(shù)中定義的變量只能在函數(shù)體重起作用,Python在函數(shù)中定義的變量只能在該函數(shù)體中才可以起作用,只要出了這個函數(shù),那么其他的地方就無法訪問這個變量,因為該變量的作用域只在這個函數(shù)中,所以只在本函數(shù)體內(nèi)有效。
前面沒有static,register,extern這幾個關鍵字修飾的變量都是auto類型的,也就是自動變量。
main函數(shù)里定義的是局部變量,只是在main函數(shù)里有效。如果程序里有多個函數(shù),定義的全局變量在這些函數(shù)里都可以使用,而在main中定義的只能在main中使用,其他函數(shù)不可以直接調(diào)用。
以int a為例 如果int a定義在函數(shù)外,(包括main函數(shù))那么它就是全局變量,在函數(shù)內(nèi)的就是局部變量。
局部變量是在某一函數(shù)內(nèi)定義的變量,有效區(qū)域在本函數(shù)里。全局變量定義在函數(shù)外,全局起作用。