淺析C++中static的一些用法
概述
Static,顧名思義是靜態(tài)、靜止的意思。在C語(yǔ)言中static是一個(gè)用來(lái)修飾變量與函數(shù)的關(guān)鍵字,被修飾對(duì)象的某些性質(zhì)將發(fā)生根本性的改變,而這些變化從某種意義上又似乎契合了“靜態(tài)”這一含義。那接下來(lái)就詳細(xì)講一講static這個(gè)關(guān)鍵字的用法吧。
我們先來(lái)思考這樣一段代碼
#include <stdio.h>
int num(int m)
{
int k = 0;
static int n= 3;
k += 1;
n += 2;
return ( m + n + k);
}
int main()
{
int i;
int m = 2;
for (i = 0; i < 5; i++)
{
printf("%d,", num(m));
}
} A. 6 ,8,10,12,14
B.8,10,12,14,16
C.10,12,14,16,18
D.12,14,16,18,20
相信你們看了這代碼心中已經(jīng)有了自己的答案,我先說(shuō)一下這道題的答案是 B ,但是如果對(duì)static這個(gè)關(guān)鍵字不熟悉的朋友會(huì)在想,艾這個(gè)static是啥來(lái)著,它在這里有什么作用?所以在這里就不得不提static的特性了。由此引出static的特性。
在C語(yǔ)言中: static可用來(lái)修飾變量和函數(shù): 1. 修飾局部變量-稱為靜態(tài)局部變量(看過(guò)上面代碼就知道了k,n都是局部變量了吧,其中n就是那個(gè)靜態(tài)局部變量) 2. 修飾全局變量-稱為靜態(tài)全局變量 3. 修飾函數(shù)-稱為靜態(tài)函數(shù)
static的特性:
1. static修飾變量
a. 函數(shù)中局部變量(一般將定義在函數(shù)中的變量稱為局部變量,其只能在函數(shù)內(nèi)部使用):
聲明周期延長(zhǎng):該變量不隨函數(shù)結(jié)束而結(jié)束(說(shuō)到周期這里就提一句變量的周期:一個(gè)變量從創(chuàng)建到銷毀的那個(gè)時(shí)間段稱為它的周期)
在這里引入生命周期這一名詞,它分為局部變量的生命周期和全局變量的生命周期
局部變量的生命周期:進(jìn)入作用域生命周期開(kāi)始,出作用域生命周期結(jié)束(可以理解為:在一個(gè)函數(shù)中定義的變量,從它被創(chuàng)建開(kāi)始到它出了(銷毀)這個(gè)函數(shù)的時(shí)間段就是它存活的生命周期)。 全局變量的生命周期:整個(gè)程序的生命周期,它隨程序啟動(dòng)而 產(chǎn)生生,隨程序結(jié)束而消亡,在任何函數(shù)中都可以使用。
初始化:只在第一次調(diào)用該函數(shù)時(shí)進(jìn)行初始化
記憶性:后序調(diào)用時(shí),該變量使用前一次函數(shù)調(diào)用完成之后保存的值
存儲(chǔ)位置:不會(huì)存儲(chǔ)在棧上,放在數(shù)據(jù)段
b. 全局變量(定義在全局作用域中的變量,即函數(shù)外的變量,稱之為全局變量)
改變?cè)撟兞康逆溄訉傩?,讓該變量具有文件作用域,即只能在?dāng)前文件中使用
c. 修飾變量時(shí),沒(méi)有被初始化時(shí)會(huì)被自動(dòng)初始化為0
2. static修飾函數(shù): 改變?cè)摵瘮?shù)的鏈接屬性,讓該函數(shù)具有文件作用域,即只能在當(dāng)前文件中使用
以上就是對(duì)static的一些用法與總結(jié)啦,若有裨益,吾之幸也!若是了解了在評(píng)論區(qū)扣個(gè)1吧,謝謝支持。
美好的一天總是那么快就過(guò)去,我們不必感嘆時(shí)間流逝,不必懷戀過(guò)去,也不必憂慮將來(lái),我們唯一能掌控的也許只有我們現(xiàn)在能做什么。
到此這篇關(guān)于淺析C++中static的一些用法的文章就介紹到這了,更多相關(guān)static的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++內(nèi)聯(lián)函數(shù)(inline)使用詳解
這篇文章主要介紹了c++內(nèi)聯(lián)函數(shù)(inline)使用詳解,需要的朋友可以參考下2014-04-04
C語(yǔ)言?超詳細(xì)總結(jié)講解二叉樹(shù)的概念與使用
二叉樹(shù)可以簡(jiǎn)單理解為對(duì)于一個(gè)節(jié)點(diǎn)來(lái)說(shuō),最多擁有一個(gè)上級(jí)節(jié)點(diǎn),同時(shí)最多具備左右兩個(gè)下級(jí)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。本文將詳細(xì)介紹一下C++中二叉樹(shù)的概念和結(jié)構(gòu),需要的可以參考一下2022-04-04
C語(yǔ)言完數(shù)的實(shí)現(xiàn)示例
C語(yǔ)言中的完數(shù)指的是一個(gè)正整數(shù),本文主要介紹了C語(yǔ)言完數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
C語(yǔ)言中g(shù)etchar(?)?函數(shù)使用詳解
getchar()?字符輸入函數(shù),沒(méi)有參數(shù),從輸入緩沖區(qū)里面讀取一個(gè)字,需要注意一次只能讀取一個(gè)字符,這篇文章主要介紹了C語(yǔ)言中g(shù)etchar函數(shù)使用詳解,需要的朋友可以參考下2022-12-12
詳解C語(yǔ)言gets()函數(shù)與它的替代者fgets()函數(shù)
這篇文章主要介紹了詳解C語(yǔ)言gets()函數(shù)與它的替代者fgets()函數(shù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄功能
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06

