好問題。
創新互聯是專業的峨眉山網站建設公司,峨眉山接單;提供成都網站建設、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行峨眉山網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
c語言中的函數和數學中的函數不一樣。
沒有參數的函數,有些用了全局變量,所以還是有參數的,意義就在于分解代碼,做成一個函數都要取個名字,從函數就可以知道一段代碼的主要功能了。
不對,在C語言中,傳值有地址傳值和參數傳值,參數傳值只能將實參傳值給形參,所以A選項正確。C語言中的外部變量是可以在函數之間傳遞數據的。
C語言中的自動變量是默認的變量,實際上是函數中的局部變量,所以D選項正確。全局變量一經定義都是需要分配內存單元,在程序運行過程中自始至終都會占用固定的空間,在未知內存情況下,最好不要使用全局變量。
函數調用時,值可以雙向傳遞,并沒有限制使用全局變量還是局部變量,需要根據程序的邏輯需要進行選擇。
擴展資料
C語言參數傳遞:
1、值傳遞
參數傳遞只把變量a的值傳遞給了變量p,此時變量a與變量p是值相同的兩個不同變量,在內存不同的兩個地址中,所以對變量p賦值只是修改了變量p的值,并不能修改變量a的值??偨Y一句話就是:值傳遞不傳遞變量本身,只傳遞變量的值。
2、引用傳遞
與值傳遞不同,func的參數是int p,表示引用傳遞。如輸出所示,通過引用傳遞,變量a的地址與變量p是相同的,也就是說引用傳遞把a的地址傳給了變量p,所以對變量p進行賦值之后,變量a的值也改變了,因為變量a與變量p實際是同一個變量。
3、指針傳遞
指針傳遞,顧名思義,int *p表明p是一個指針變量,調用func(a)是把變量a的內存地址傳遞過去賦值給指針變量p,此時指針變量p的值是變量a的內存地址,故可看到輸出p為efbfde2c(變量a的內存地址)。
*p是對指針p的值(即變量a的內存地址)進行取值,相當于*a,所以對*p進行賦值也就改變了變量a的值。
當然可以,int
main()這個主函數通常情況下就是沒有參數的。
使用全局變量進行數據的傳遞是可以的。
優點是:很方便調用,因為誰都可以使用它,不用很麻煩的傳遞參數
缺點是:就是應為誰都可以使用它,大家都可以修改它,可能導致不可預測的錯誤,也不便于調試,當程序中變量個數較多時,一不小心很容易在無意中修改了全局變量的值,導致查找、糾錯麻煩。所以不建議大量使用全局變量。
是指中斷處理函數不能有輸入參數也不能有函數返回。因為中斷都是些硬件自動調用,沒有程序去給他傳遞參數,也沒有硬件去接收參數。
不過x86計算機的軟中斷可以有參數傳遞,不過他是用寄存器傳遞的。
帶參數是因為能傳遞參數(傳入、傳出),即便返回一個狀態也是好的,不帶參數的話只完成了一些全局變量的修改,運行結果無法監控。所以最好還是傳遞參數,如果沒有必要傳入,那么返回個退出狀態就可以了。
本文標題:c語言函數傳值不傳參數,c語言函數傳值不傳參數怎么辦
文章轉載:http://m.newbst.com/article38/dssgdpp.html
成都網站建設公司_創新互聯,為您提供外貿建站、小程序開發、移動網站建設、網站設計公司、微信公眾號、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯