日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

淺析C++中static的一些用法_C 語言

作者:實踐方可檢驗出不足 ? 更新時間: 2023-01-01 編程語言

概述

Static,顧名思義是靜態、靜止的意思。在C語言中static是一個用來修飾變量與函數的關鍵字,被修飾對象的某些性質將發生根本性的改變,而這些變化從某種意義上又似乎契合了“靜態”這一含義。那接下來就詳細講一講static這個關鍵字的用法吧。

我們先來思考這樣一段代碼

#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

相信你們看了這代碼心中已經有了自己的答案,我先說一下這道題的答案是 B ,但是如果對static這個關鍵字不熟悉的朋友會在想,艾這個static是啥來著,它在這里有什么作用?所以在這里就不得不提static的特性了。由此引出static的特性。

在C語言中: static可用來修飾變量和函數: 1. 修飾局部變量-稱為靜態局部變量(看過上面代碼就知道了k,n都是局部變量了吧,其中n就是那個靜態局部變量) 2. 修飾全局變量-稱為靜態全局變量 3. 修飾函數-稱為靜態函數

static的特性:
??1.?static修飾變量
???a.?函數中局部變量(一般將定義在函數中的變量稱為局部變量,其只能在函數內部使用):
??????聲明周期延長:該變量不隨函數結束而結束(說到周期這里就提一句變量的周期:一個變量從創建到銷毀的那個時間段稱為它的周期)

在這里引入生命周期這一名詞,它分為局部變量的生命周期和全局變量的生命周期

局部變量的生命周期:進入作用域生命周期開始,出作用域生命周期結束(可以理解為:在一個函數中定義的變量,從它被創建開始到它出了(銷毀)這個函數的時間段就是它存活的生命周期)。 全局變量的生命周期:整個程序的生命周期,它隨程序啟動而 產生生,隨程序結束而消亡,在任何函數中都可以使用。

??????初始化:只在第一次調用該函數時進行初始化
??????記憶性:后序調用時,該變量使用前一次函數調用完成之后保存的值
??????存儲位置:不會存儲在棧上,放在數據段
???b.?全局變量(定義在全局作用域中的變量,即函數外的變量,稱之為全局變量)
?????改變該變量的鏈接屬性,讓該變量具有文件作用域,即只能在當前文件中使用
???c.?修飾變量時,沒有被初始化時會被自動初始化為0
??2.?static修飾函數:?改變該函數的鏈接屬性,讓該函數具有文件作用域,即只能在當前文件中使用

以上就是對static的一些用法與總結啦,若有裨益,吾之幸也!若是了解了在評論區扣個1吧,謝謝支持。

美好的一天總是那么快就過去,我們不必感嘆時間流逝,不必懷戀過去,也不必憂慮將來,我們唯一能掌控的也許只有我們現在能做什么。

原文鏈接:https://blog.csdn.net/m0_67768006/article/details/127607402

欄目分類
最近更新