最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中static的使用介紹

 更新時(shí)間: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呢

因?yàn)榫植孔兞?a 進(jìn)入這個(gè)范圍創(chuàng)建? 出了這個(gè)范圍銷毀? ?所以結(jié)果都是2

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

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

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

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

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

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

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

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

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

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

2. static 可以修飾全局變量

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

? ?全局變量的作用域是整個(gè)工程

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

如圖

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

此時(shí)就會報(bào)錯??

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

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

相關(guān)文章

  • C++實(shí)現(xiàn)簡易五子棋游戲

    C++實(shí)現(xiàn)簡易五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡易五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言職工信息管理系統(tǒng)源碼

    C語言職工信息管理系統(tǒng)源碼

    這篇文章主要為大家詳細(xì)介紹了C語言職工信息管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++開放封閉原則示例解析

    C++開放封閉原則示例解析

    在如那就的設(shè)計(jì)模式中,不能修改,但可以擴(kuò)展的實(shí)現(xiàn)是一條十分重要的原則,它是開放-封閉原則(The Open-Clossed Principle,簡稱OCP)或開-關(guān)閉原則
    2023-02-02
  • C++ 虛函數(shù)和純虛函數(shù)的區(qū)別分析

    C++ 虛函數(shù)和純虛函數(shù)的區(qū)別分析

    這篇文章主要介紹了C++ 虛函數(shù)和純虛函數(shù)的區(qū)別,幫助大家更好的理解和學(xué)習(xí)c++的相關(guān)知識,感興趣的朋友可以了解下
    2020-10-10
  • 一個(gè)win32窗口創(chuàng)建示例

    一個(gè)win32窗口創(chuàng)建示例

    這篇文章主要介紹了一個(gè)win32窗口創(chuàng)建示例,需要的朋友可以參考下
    2014-04-04
  • C++利用多態(tài)實(shí)現(xiàn)職工管理系統(tǒng)(項(xiàng)目開發(fā))

    C++利用多態(tài)實(shí)現(xiàn)職工管理系統(tǒng)(項(xiàng)目開發(fā))

    這篇文章主要介紹了C++利用多態(tài)實(shí)現(xiàn)職工管理系統(tǒng)(項(xiàng)目開發(fā)),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • C語言結(jié)構(gòu)體計(jì)算內(nèi)存占用問題解析

    C語言結(jié)構(gòu)體計(jì)算內(nèi)存占用問題解析

    這篇文章主要介紹了C語言結(jié)構(gòu)體計(jì)算內(nèi)存占用問題解析,本文通過案例來解析了C語言計(jì)算結(jié)構(gòu)體內(nèi)存的方式和方法,需要的朋友可以參考下
    2021-07-07
  • C語言實(shí)現(xiàn)高精度減法

    C語言實(shí)現(xiàn)高精度減法

    高精度的本質(zhì)是將數(shù)字以字符串的形式讀入,然后將每一位分別存放入int數(shù)組中,通過模擬每一位的運(yùn)算過程,來實(shí)現(xiàn)最終的運(yùn)算效果,下面我們就來看看C語言如何實(shí)現(xiàn)高精度減法吧
    2023-11-11
  • C語言鏈接屬性的實(shí)踐應(yīng)用

    C語言鏈接屬性的實(shí)踐應(yīng)用

    C語言中鏈接屬性決定如何處理在不同文件中出現(xiàn)的標(biāo)示符,下面這篇文章主要給大家介紹了關(guān)于C語言鏈接屬性的實(shí)踐應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • C語言中如何實(shí)現(xiàn)桶排序

    C語言中如何實(shí)現(xiàn)桶排序

    這篇文章主要介紹了C語言中如何實(shí)現(xiàn)桶排序問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

太康县| 北流市| 洛川县| 泰州市| 阿鲁科尔沁旗| 岚皋县| 元阳县| 黎川县| 桦甸市| 黄浦区| 都安| 武乡县| 吉隆县| 德化县| 高雄市| 师宗县| 象山县| 蓝山县| 黎城县| 肇东市| 成武县| 甘谷县| 罗定市| 五峰| 商城县| 阿瓦提县| 阜新市| 张北县| 石河子市| 惠东县| 伊金霍洛旗| 洛川县| 普定县| 丰顺县| 张家界市| 景谷| 旬阳县| 田林县| 苏州市| 庆阳市| 洛川县|