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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言字面量的作用是为变量,C语言(五) C 全局变量,局部变量,静态变量和常量...

發布時間:2025/3/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言字面量的作用是为变量,C语言(五) C 全局变量,局部变量,静态变量和常量... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 全局變量

全局變量是在所有函數體的外部定義的,程序的所有部分(其他文件的代碼)都可以使用。全局變量不受作用域的影響。全局變量的生命周期一直到程序的結束,全局變量是靜態存儲方式。

例:

#include #include /* a 就是一個全局變量*/

int a = 2;

int main(int argc, char *argv[]) {

printf("int 存儲大小 : %d \n", a);

return 0;

}

如果在一個文件中使用extern關鍵字來聲明另一個文件中存在的全局變量,那么這個文件可以使用這個變量。

例:

在a.c中定義一個全局變量

#include #include int a = 3;/*定義在a.c文件中的全局變量a*/

在main.c中使用extern關鍵字引用a.c中的全局變量a

#include #include /* 使用extern管金子引用a.c中的全局變量a*/

extern int a;

int main(int argc, char *argv[]) {

printf("int 存儲大小 : %d \n", a);

return 0;

}

二.局部變量

局部變量出現在一個作用域內,它們是局限于一個函數的。局部變量經常被稱為自動變量,因為它們在進入作用域時,自動生成,離開作用域時自動消失。關鍵字auto可以顯示的說明這個問題,但局部變量默認為auto,所以沒必要聲明為auto。通常函數里定義的變量,函數的參數都局部變量。所以一般需要在某個函數里,返回數組的地址或者指針之類,這時候必須定義成static,或者動態申請內存,這樣函數結束返回時才不會釋放掉那塊內存空間。

寄存器變量也是一種局部變量。register來修飾,就是告訴編譯器盡可能快的訪問這個變量,通過存放在寄存器中來實現快速訪問。

三.靜態變量

靜態變量的修飾關鍵字是static,static可以作用于變量以及函數。由static修飾的,可分為靜態局部變量,靜態全局變量,靜態函數。靜態變量的生命期和程序生命期是一樣的,在程序結束之后操作系統會回收空間。?靜態變量當然是屬于靜態存儲方式,但是屬于靜態存儲方式的量不一定就是靜態變量。?例如外部變量雖屬于靜態存儲方式,但不一定是靜態變量,必須由?static加以定義后才能成為靜態外部變量,或稱靜態全局變量

1.靜態局部變量

在局部變量前面加上static后,就定義了靜態局部變量,靜態局部變量屬于靜態存儲方式,靜態局部變量只會被初始化一次,下次使用依據上一次保存的值。它具有以下特點:

(1)? 靜態局部變量在函數內定義?,它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數內使用該變量。退出該函數后,?盡管該變量還繼續存在,但不能使用它。(作用域不變,生存周期變了)

(2)? 允許對構造類靜態局部量賦初值?,例如數組,若未賦以初值,則由系統自動賦以0值。(而非靜態局部變量未賦初始值,系統會給個隨機值)

(3)? 對基本類型的靜態局部變量,若在說明時未賦以初值,則系統自動賦予0值。而對自動變量沒有賦初值,則其值是隨機值。

靜態局部變量是一種生存期為整個源程序的量。雖然離開定義它的函數后不能使用,但如再次調用定義它的函數時,它又可繼續使用,?而且保存了上次被調用后留下的值。?因此,當多次調用一個函數且要求在調用之間保留某些變量的值時,可考慮采用靜態局部變量。雖然用全局變量也可以達到上述目的,但全局變量有時會造成意外的副作用,因此仍以采用局部靜態變量為宜。

2.靜態全局變量

全局變量(外部變量)的說明之前再加static?就構成了靜態全局變量。static全局變量只初使化一次,防止在其他文件單元中被引用。全局變量本身就是靜態存儲方式,?靜態全局變量當然也是靜態存儲方式。?這兩者在存儲方式上并無不同。這兩者的區別雖在于非靜態全局變量的作用域是整個源程序,?當一個源程序由多個源文件組成時,非靜態的全局變量在各個源文件中都是有效的。?而靜態全局變量則限制了其作用域,?即只在定義該變量的源文件內有效,在同一源程序的其它源文件中不能使用它。由于靜態全局變量的作用域局限于一個源文件內,只能為該源文件內的函數公用,?因此可以避免在其它源文件中引起錯誤。

四.常量

常量是固定值,在程序執行期間不會改變。這些固定的值,又叫做字面量。

常量可以是任何的基本數據類型,比如整數常量、浮點常量、字符常量,或字符串字面值,也有枚舉常量。

常量就像是常規的變量,只不過常量的值在定義后不能進行修改。

定義常量

在 C 中,有兩種簡單的定義常量的方式:

使用?#define?預處理器。

使用?const?關鍵字。

#define 例子:

#include #define LENGTH 10

#define WIDTH 5

#define NEWLINE '\n'

int main()

{

int area;

area = LENGTH * WIDTH;

printf("value of area : %d", area);

printf("%c", NEWLINE);

return 0;

}

const 例子:

#include int main()

{

const int LENGTH = 10;

const int WIDTH = 5;

const char NEWLINE = '\n';

int area;

area = LENGTH * WIDTH;

printf("value of area : %d", area);

printf("%c", NEWLINE);

return 0;

}

總結

以上是生活随笔為你收集整理的c语言字面量的作用是为变量,C语言(五) C 全局变量,局部变量,静态变量和常量...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产一区二区视频播放 | 日韩福利一区二区三区 | 国产一级影院 | 色七七网站 | 日韩成人综合 | 亚洲第一字幕 | 91成人黄色 | 国产深喉视频一区二区 | av啊啊| 毛片大全免费 | 亚洲人毛茸茸 | 日韩激情一区二区三区 | 青青青在线观看视频 | 婷婷激情电影 | 91www | 国产欧美日韩久久 | 久久久永久久久人妻精品麻豆 | 美女又爽又黄免费视频 | 精品国产乱码久久久久久婷婷 | 狼人综合网 | 一级黄色淫片 | 欧美一级免费在线观看 | 日本在线观看一区二区 | 在线免费黄色片 | 亚洲中文字幕一区二区在线观看 | 中文字幕一区二区人妻视频 | 亚洲激情视频一区 | 日本少妇久久久 | 色综合一区二区三区 | 日韩不卡视频在线观看 | 一二三区免费视频 | 国产免费a视频 | 国产精品99无码一区二区 | 国产精品一区二区免费 | 日本熟妇一区二区三区 | 337p亚洲精品色噜噜狠狠 | 中文字幕丰满人伦在线 | 国语对白做受欧美 | 精品h视频 | 欧美香蕉网| 久久激情综合网 | 中文字幕精品一区久久久久 | 天天干天天做 | 国产偷拍一区二区三区 | 在线观看视频亚洲 | 无码人妻一区二区三区免费 | 91桃色在线观看 | 亚洲精品一区二区三区精华液 | 一级久久久| 欧美综合一区二区三区 | 天天综合网天天综合色 | 成人一级大片 | 亚洲黄片一区二区 | 日韩高清不卡在线 | 18岁免费观看电视连续剧 | 欧美色视频在线观看 | 国产字幕侵犯亲女 | 精品白浆 | 少妇真人直播免费视频 | 中文字幕日韩一级 | 久久777 | 好看的av在线| 91大神小宝寻花在线观看 | 永久免费网站直接看 | 91精品国产高清一区二区三蜜臀 | 少妇捆绑紧缚av | 无码人妻精品一区二区三区不卡 | 国产视频99 | 二区久久| 视频一区在线免费观看 | 亚洲激情在线 | 精品国产自在精品国产精小说 | 精品视频在线免费观看 | 国产丝袜美腿一区二区三区 | 人成免费 | 亚洲天堂123 | 欧美精品videos | 粗了大了 整进去好爽视频 日本女优中文字幕 | 国产一区二区四区 | 中文字幕xxx| 亚洲激情在线视频 | 黄色操人视频 | 国产做受91 | 日韩资源网 | 国产一区二区视频在线观看免费 | 97成人人妻一区二区三区 | 亚洲aaa视频 | 欧美日韩久久婷婷 | 先锋影音av资源站 | 国产视频网站在线观看 | 国产精品性色 | 视频区小说区图片区 | 亚洲综合射 | youjizz.com国产 | 原来神马电影免费高清完整版动漫 | 国产精品呦呦 | 78日本xxxxxxxxx59 亚洲图片小说视频 | 日本老小玩hd老少配 | brazzers精品成人一区 |