日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 static - C语言零基础入门教程

發布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 static - C语言零基础入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一.static 簡介
  • 二.static 修飾變量
    • 1.static 局部靜態變量
    • 2.static 全局靜態變量
  • 三.static 修飾函數
  • 四.猜你喜歡

零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門

一.static 簡介

在 C 語言中,static 關鍵字不僅可以用來修飾變量,還可以用來修飾函數。在使用 static 關鍵字修飾變量時,我們稱此變量為靜態變量。

1.如果局部變量使用 static 修飾,那么該變量就是局部靜態變量;

#include <stdio.h>int main() {static int x = 0; //局部靜態變量printf("www.codersrc.com");return 0; }

2.如果全局變量使用 static 修飾,那么該變量就是全局靜態變量;

#include <stdio.h>static int x = 0; //全局靜態變量int main() {printf("www.codersrc.com");return 0; }

3.如果函數使用 static 修飾,那么該函數就是靜態函數;

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 static //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/#include <stdio.h>static int func() //靜態函數 {printf("靜態函數");return 0; }int main() {func();printf("www.codersrc.com");return 0; } /* 輸出:靜態函數www.codersrc.com */

二.static 修飾變量

1.static 局部靜態變量

定義在函數內部的變量稱為局部變量(Local Variable),它的作用域僅限于函數內部, 離開該函數后就是無效的,生命周期直接結束,再使用就會報錯。

而使用 static 修飾的局部靜態變量,它的作用域僅限于函數內部, 離開該函數后就是無效的,**生命周期**直到程序結束,舉個栗子:

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 static //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/#include <stdio.h>int func1() {int x = 5;x++;printf("函數func1 局部變量 x = %d\n",x);return 0; }int func2() {static int x = 10;x++;printf("函數func2 靜態局部變量 x = %d\n",x);return 0; }int main() {for(int i = 0;i<10;i++){func1();func2();}return 0; } /* 輸出:函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 11 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 12 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 13 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 14 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 15 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 16 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 17 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 18 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 19 函數func1 局部變量 x = 6 函數func2 靜態局部變量 x = 20 */

在函數 func 1 和 func 2 中都有變量 x , 根據輸出的結果可以看出來,不管是普通局部變量還是 static 修飾的靜態局部變量,作用域僅僅只在函數內部有效;

由此可見,靜態局部變量的效果跟全局變量有一拼,但是作用域僅僅限于函數體內部;

2.static 全局靜態變量

  • 1.static 全局變量只初使化一次;
  • 2.在單個 .h 或者 .c 文件中,普通全局變量和 static 修飾的 全局靜態變量是一樣的;
  • 3.當一個程序由多個 .h 或者 .c 文件組成時,全局變量在各個源文件中都是有效的 ,而 static 修飾的 全局靜態變量僅僅只能在當前的 .h 或者 .c 文件使用,其他文件聲明或者定義相同名字的全局變量也不會產生沖突,從而達到降低程序耦合性的目的;
  • 4.static 修飾的變量都存放在靜態數據區,內存中所有的字節默認值都是 0x00(全局變量也一樣),因此全局變量和 static 修飾的變量默認值為 0。
/********************************************\*\*********************************************///@Author:猿說編程//@Blog(個人博客地址): www.codersrc.com//@File:C 語言教程 - C 語言 static//@Time:2021/07/18 07:30//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!/********************************************\*\*********************************************/#include <stdio.h>static int x; //靜態全局變量int y; //全局變量int main(void){static int z; //靜態局部變量printf(" x:%d\n y:%d\n z:%d",x,y,z);return 0;}/*輸出:x:0y:0z:0*/

三.static 修飾函數

  • 靜態函數只能在聲明它的文件中可見,其他文件不能引用該函數
  • 不同的文件可以使用相同名字的靜態函數,互不影響

下面兩個文件的例子說明使用 static 聲明的函數不能被另一個文件引用:

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 static //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************//* file1.c */ #include <stdio.h>static void fun(void) {printf("hello from fun.\n"); }int main(void) {fun();fun1();return 0; }/* file2.c */ #include <stdio.h>static void fun1(void) {printf("hello from static fun1.\n"); } /* 輸出: error:file1.c:(.text+0x20):對‘fun1’未定義的引用 collect2: error: ld returned 1 exit status */

修改文件,不使用 static 修飾符,可在另一文件中引用該函數:

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 static //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************//* file1.c */ #include <stdio.h>static void fun(void) {printf("hello from fun.\n"); }int main(void) {fun();fun1();return 0; }/* file2.c */ #include <stdio.h>void fun1(void) {printf("hello from static fun1.\n"); }/* 輸出: hello from fun. hello from static fun1. */

四.猜你喜歡

  • C 語言 數組下標越界和內存溢出區別
  • C 語言 使用指針遍歷數組
  • C 語言 指針和數組區別
  • C 語言 指針數組和數組指針區別
  • C 語言 野指針
  • C 語言 函數值傳遞和址傳遞
  • C 語言 函數不定長參數
  • C 語言 函數指針
  • C 語言 指針函數
  • C 語言 回調函數 callback
  • C 語言 #pragma once
  • C 語言 #include <> 與 #include “” 區別
  • C 語言 const 修飾函數參數
  • C 語言 const 和 define 區別
  • C 語言 #運算符
  • C 語言 ##運算符
  • C 語言 __VA_ARGS__
  • C 語言 ##__VA_ARGS__
  • C 語言 函數不定長參數 ##__VA_ARGS__經典案例
  • C 語言 va_start / va_end / va_arg 自定義 printf 函數
  • C 語言 main 函數
  • C 語言 main 函數參數 main(int argc, char *argv[])
  • C 語言 局部變量
  • C 語言 全局變量
  • C 語言 全局變量和局部變量區別
  • C 語言 static
  • 未經允許不得轉載:猿說編程 ? C 語言 static

    總結

    以上是生活随笔為你收集整理的C语言 static - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品久久久久久久久久久久久久久久久 | 亚洲一区在线观看视频 | 婷婷综合av| 亚洲精品成人片在线观看精品字幕 | 亚洲欧美激情在线观看 | 男人天堂99 | 日韩五码在线 | 落日余晖 | 国产青青青 | 国产视频第一区 | 久草免费网站 | 欧美人与性动交α欧美精品 | 日韩激情视频一区二区 | 99热首页 | 国模在线 | av在线网址大全 | 午夜家庭影院 | 久久精品国产精品亚洲毛片 | 秋霞免费av | 91av综合| 91视频首页 | 亚洲乱码国产乱码精品 | 97成人精品视频在线观看 | 久草国产精品 | 狠狠操婷婷 | 97久久人澡人人添人人爽 | 极品女神无套呻吟啪啪 | 成人综合网站 | 麻豆久久久 | 精品电影一区二区 | 樱桃视频一区二区三区 | 天天摸天天操天天干 | 蜜桃91丨九色丨蝌蚪91桃色 | 黄色网络在线观看 | 椎名空在线播放 | 日本最黄网站 | caoprom在线视频| 成人xx视频 | 操日本老太太 | 午夜福利三级理论电影 | 天堂av免费在线 | 最污网站在线观看 | 白俄罗斯毛片 | 日本裸体视频 | 免费av观看网址 | 综合狠狠 | 91看篇 | 亚洲精品理论片 | 久久久在线免费观看 | 久久成人毛片 | 在线精品视频免费观看 | 超碰资源总站 | 国产在线视频卡一卡二 | 荡女精品导航 | 国产精品成人一区二区网站软件 | 涩涩视频免费看 | 久草视频资源 | brazzers精品成人一区 | 91成人免费在线观看视频 | 97国产精品视频人人做人人爱 | 欧美乱妇狂野欧美视频 | 理论片午午伦夜理片影院99 | 欧洲一区二区三区 | 在线中文字幕一区 | 无码国产精品久久一区免费 | 国产麻豆久久 | 日本三级在线 | 国产九色sp调教91 | 久久久久九九九九 | 我把护士日出水了视频90分钟 | www.黄色大片| 91成人天堂久久成人 | 日本精品一区二区三区在线观看 | 国产日韩专区 | 91搞搞| 韩国主播青草55部完整 | 欧美日韩免费观看视频 | 中国女人真人一级毛片 | 国产美女一区二区三区 | 四虎影视8848hh | 怨女1988国语版在线观看高清 | 捆绑japanhdxxxxvideos | 奇米四色777 | 不卡视频在线观看免费 | 久久社区视频 | 四虎国产成人精品免费一女五男 | 天天干天天日夜夜操 | 精品一区二区三区成人免费视频 | 五月天激情综合网 | 国产区在线观看视频 | 久久99精品久久久久久国产越南 | 久操视频免费观看 | 黄色av免费网站 | 亚洲激情视频小说 | 一级黄色大片在线观看 | 老王66福利网 | h视频网站在线观看 | 国产a级免费视频 | 亚洲中文字幕无码专区 |