每日程序C语言30-static作用
生活随笔
收集整理的這篇文章主要介紹了
每日程序C语言30-static作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
static作用
static作用
(1)隱藏。當我們編輯多個文件時,所有未加static前綴的全局變量和函數都具有全局課件性
(2)保持變量容量的持久。存儲在靜態數據區的變量會在程序剛開始運行時就完成初始化,也是唯一的一次初始化,共有兩種變量存儲在靜態存儲區:全局變量和static變量,只不過和全局變量比起來,static可以控制變量的可見范圍,static是用來隱藏的
(3)默認初始化為0。其實全局變量也具備這一屬性,因為全局變量也存儲在靜態數據區。在靜態數據區,內存中所有的字節默認值都是0x00,某些時候這一特點可以減少程序員的工作量,比如在初始化一個稀疏矩陣,我們可以一個一個把所有元素都置0,然后把不是0的幾個元素賦值。如果定義成靜態的,就省去了一開始置0的操作,再比如要把一個字符數組當字符串來用,但又覺得每次在字符數組末尾加“\0”太麻煩,如果把字符串定義成靜態的,就省去了這個麻煩
主要代碼
test.h
#include<stdio.h> void msg(); void display();demo.c
#include<stdio.h> char a='A';//全局變量 void msg(){//全局函數printf("Hello\n"); } static int n; void display(){n++;printf("%d\n",n); }main.c
#include "stdio.h" #include "stdlib.h" #include "test.h" int fun(){static int count=10;//static變量.只執行過一次return count--; } int count=1;//全局變量 int b;//全局變量b int main(){//作用一extern char a;//擴展的變量必須在使用前聲明printf("%c",a);msg();display();//作用二printf("全局變量\tstatic變量\n");for (; count<=10 ; count++){printf("%d\t\t%d\n",count,fun());}//作用三static char str[10];printf("全局變量b:%d;靜態數組:(begin)%s(end)",b,str);system("pause");return 0; }今日鞏固
總結
以上是生活随笔為你收集整理的每日程序C语言30-static作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日程序C语言29-将数组逆序输出
- 下一篇: 每日程序C语言31-auto的使用