日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中的static的作用~

發布時間:2023/12/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言中的static的作用~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

static的三個作用

1.修飾局部變量

2.修飾全局變量

3.修飾函數

要想更好地理解static的作用,我們有必要介紹一下以下三個概念:

內存的棧區、堆區、靜態區

這就內存中的棧區、堆區、靜態區里面存放東西的大致情況。

然后我們再來看第一條:

一、static修飾的局部變量

?可以看到這里的結果是打印了10個1,有的人會產生疑問了,“這里為什么不是1~10”呢?因為每次test()進去后都要重新定義a=1。? 當a被創建出來時,它的作用域只在這個局部范圍內,當出了這個范圍就自動銷毀了。

如果用static修飾這里的int a=1會怎樣呢?

?我們可以看到,打印出了1~10的結果。因為用static修飾了局部變量a后,就延長了a的生命周期,使得它的作用域又局部范圍延展至整個工程。它本質上是改變了變量的存儲類型(位置)。

在看內存圖,局部變量進入棧區創建,出棧區銷毀,由棧區移至靜態區,并且它是在編譯期間放到靜態區的,不需要在執行過程中再開辟內存空間。

二、static修飾的全局變量

?我們創建了兩個源文件,在assd.c中創建了變量a,在test.c中用extern關鍵字聲明了這個外部符號,發現可以正常使用這個變量a。

而加上了static修飾這個全局變量a,

?

?

?

?這邊報錯了,這是因為編譯器沒有找到a。

全局變量,在其他源文件內部可以被使用是因為全局變量具有外部鏈接屬性,但被static修飾后,就變成了內部鏈接屬性,其它源文件就不能鏈接到這個靜態的全局變量了。

3.static修飾的函數

?

?

?static修飾函數和修飾全局變量異曲同工,也是因為函數有外部鏈接屬性,但被static修飾后變成了內部鏈接屬性。

總結

以上是生活随笔為你收集整理的C语言中的static的作用~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。