tft每日頭條

 > 生活

 > c語言的static

c語言的static

生活 更新时间:2024-11-01 07:40:07

c語言的static(C語言關鍵字static的用法)1

接上文:C語言的32個關鍵字

C語言 static 關鍵字的常見用法有三種:

  • 用于局部變量的修飾符;
  • 用于全局變量的修飾符;
  • 用于函數的修飾符。
1、用于局部變量的修飾符

當 static 用于修飾局部變量時,通常是在某個函數體内,隻能在該函數内被調用。

這樣定義的變量通常被稱為局部靜态變量,它的值不會因為函數調用的結束而被清除,當函數再次被調用時,它的值是上一次調用結束後的值。

如下面這段代碼所示,變量 x 是局部變量,變量 y 是靜态局部變量。在調用函數後,變量 x 的值會被清除,而變量 y 的值則會被保留。多次調用該函數,變量 x 每次都會從新初始化,而變量 y 的值則不會。

c語言的static(C語言關鍵字static的用法)2

靜态局部變量的特性:

  • 存儲位置:處于靜态存儲區,當用 static 修飾局部變量的時候,它就改變了局部變量的存儲位置,從原來的棧中存放改為靜态存儲區;
  • 初始化操作:未經初始化的局部靜态變量會被程序自動初始化為0(自動對象的值是任意的,除非他被顯示初始化);
  • 作用域:為局部作用域,即當定義它的函數結束的時候,作用域随之結束(不能被訪問)。但是靜态局部變量在離開作用域之後,并沒有被銷毀,而是仍然保存在内存當中,直到程序結束。

變量在内存的不同區域介紹

2、用于全局變量的修飾符

關鍵字 static 還可用于修飾全局變量,該變量在某一個文件中變量,但不屬于任何一個函數内,這樣的變量通常稱為靜态全局變量

靜态全局變量的存儲位置、初始化操作同靜态局部變量的特性,但其作用域有所不同:靜态全局變量可以被該文件内的所有函數訪問,但不能被其它文件内的函數訪問。

3、用于函數的修飾符

關鍵字 static 還可以用于修飾一個函數,這樣的函數稱之為靜态函數。

定義一個靜态函數就是在函數的返回類型前加上 static 關鍵字。

靜态函數的作用域僅限于本文件,不能被其它文件調用。

c語言的static(C語言關鍵字static的用法)3

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved