欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中static的使用介紹

 更新時間:2021年12月21日 15:30:28   作者:前禿無量  
大家好,本篇文章主要講的是C語言中static的使用介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

1.static 可以修飾局部變量

首先讓我看看這段代碼

#include<stdio.h>
void test()
{
	int a = 1;
	a = a + 1;
	printf("%d", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

你認(rèn)為輸出的結(jié)果是什么呢?

那為什么結(jié)果是2222222222呢

因為局部變量 a 進入這個范圍創(chuàng)建? 出了這個范圍銷毀? ?所以結(jié)果都是2

當(dāng)我們加上static 的結(jié)果又會是什么

那為什么加上 static 結(jié)果就不一樣了

我們研究一下static的使用原理

我們的內(nèi)存分為三大類

我們的局部變量放在棧區(qū)??

而static把a放在了靜態(tài)區(qū)? ?而在靜態(tài)區(qū)的變量 出了他的范圍是不銷毀的

我們對比一下 可能更加直觀

?所以 static 修飾局部變量的時候,其實改變的是局部變量得存儲位置

靜態(tài)得局部變量是放在靜態(tài)區(qū),放在靜態(tài)區(qū)的變量出了作用域是不會銷毀的,相當(dāng)于生命周期延長了。

?補充? ?變量的作用域是不變的,只是生命周期延長了

2. static 可以修飾全局變量

我們再創(chuàng)建一個源文件?

? ?全局變量的作用域是整個工程

如果我們想引用另一個源文件的函數(shù)? ?? 這里我們不得不說 extern 這個關(guān)鍵字

如圖

? static 可以修飾全局變量? 如果我們再全局變量前 加上static會是什么結(jié)果呢

此時就會報錯??

一個全局變量具有外部鏈接屬性的 (就是可以被其他源文件引用)但是被static 修飾后外部鏈接屬性就變成了內(nèi)部鏈接屬性 只能在自己所在的源文件內(nèi)部使用不能在其他文件內(nèi)部使用

所以再次調(diào)試的時候就會報錯

那 static 修飾的全局變量的本質(zhì)是? 外部鏈接屬性發(fā)生改變? ?而不是他的作用域變小

static 修飾全局變量的意義是? 如果你定義了一個全局變量? 別人用 extern 就可以隨便使用??

如果你不想讓別人看? 就可以用static .?

3.static 可以修飾函數(shù)

我們用另一個源文件創(chuàng)建一個函數(shù)? 如圖

用 關(guān)鍵字extern 聲明后? 調(diào)試結(jié)果

這里我們在函數(shù)前加上static 又會是什么結(jié)果呢?

? 其實一個函數(shù)本身具有外部鏈接屬性? 被static修飾后 外部鏈接屬性變成了內(nèi)部鏈接屬性? 只能在源2.c 內(nèi)部使用 其他源文件無法使用? ? 使用上感覺作用域變小

我們可以發(fā)現(xiàn) static 修飾全局變量和修飾函數(shù)用法一樣? ?

總結(jié)

當(dāng)我們使用一個局部變量? 出了他的范圍 不希望他被銷毀下次進來之后還在 那我們就可以拿static 修飾?

當(dāng)我們希望一個全部變量 在他自己源文件使用 任意其他地方不想讓別人看到 也可以用static修飾

當(dāng)我們寫的函數(shù)只是自己用一下 不希望別人引用 則也可以用static修

到此這篇關(guān)于C語言中static的使用介紹的文章就介紹到這了,更多相關(guān)C語言static內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)父進程主動終止子進程的方法總結(jié)

    C語言實現(xiàn)父進程主動終止子進程的方法總結(jié)

    一般的情況,子進程自己運行完后,執(zhí)行exit 或者return 后,父進程wait.  waitpid收回子進程,但子進程是一個循環(huán)等待狀態(tài)不主動退出,父進程可以采用文中介紹的幾種方法,需要的朋友可以參考下
    2023-10-10
  • C語言實現(xiàn)貪吃蛇游戲設(shè)計

    C語言實現(xiàn)貪吃蛇游戲設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)貪吃蛇游戲設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 如何利用C語言輸出3D立體感心形圖詳解

    如何利用C語言輸出3D立體感心形圖詳解

    其實我們在程序中也有很多樂趣的,只是很多人不善于發(fā)現(xiàn),這篇文章主要給大家介紹了關(guān)于C語言輸出3D立體感心形圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • C語言跳轉(zhuǎn)瀏覽器打開指定URL的操作代碼

    C語言跳轉(zhuǎn)瀏覽器打開指定URL的操作代碼

    這篇文章主要介紹了C語言跳轉(zhuǎn)瀏覽器打開指定URL,該代碼使用sprintf()函數(shù)將要打開的URL添加到一個系統(tǒng)命令中,然后使用system()函數(shù)調(diào)用該命令以默認(rèn)瀏覽器打開URL,需要的朋友可以參考下
    2023-04-04
  • C++虛函數(shù)表的原理與使用解析

    C++虛函數(shù)表的原理與使用解析

    對C++?了解的人都應(yīng)該知道虛函數(shù)(Virtual?Function)是通過一張?zhí)摵瘮?shù)表(Virtual?Table)來實現(xiàn)的。簡稱為V-Table。本文就將詳細(xì)講講虛函數(shù)表的原理與使用,需要的可以參考一下
    2022-04-04
  • ShellExecute函數(shù)用法的實例代碼

    ShellExecute函數(shù)用法的實例代碼

    ShellExecute函數(shù)用法的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • 淺析C++中cout的運行機制

    淺析C++中cout的運行機制

    關(guān)于C++中cout的使用,相信大家再熟悉不過了,然而對于cout是如何輸出的?輸出的機制是啥,需要進一步的了解。本章娓娓道來。前幾天在網(wǎng)上看到這么一個題目
    2013-10-10
  • 用C語言實現(xiàn)簡單掃雷小游戲

    用C語言實現(xiàn)簡單掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了用C語言實現(xiàn)簡單掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間

    Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間

    這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間,需要的朋友可以參考下
    2020-03-03
  • 深入C/C++浮點數(shù)在內(nèi)存中的存儲方式詳解

    深入C/C++浮點數(shù)在內(nèi)存中的存儲方式詳解

    本篇文章是對C/C++浮點數(shù)在內(nèi)存中的存儲方式進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論