C語言中的變數

2021-08-28 01:22:03 字數 1206 閱讀 6830

一.普通區域性變數:區域性變數無論是否靜態均不允許同名,否則會出現error;當區域性變數與全域性變數同名時,依據就近原則進行判斷。區域性變數同名是指在復合語句的巢狀中,內層復合語句變數與外層復合語句變數同名,這樣是允許的。

二.普通全域性變數:全域性變數無論是否靜態都不允許同名,否則編譯器會給出error。同名情況同上。但是需要注意的是,普通全域性變數與外部宣告的普通全域性變數重名時,vs會報錯,gcc會給出警告。

fun.c:

int a = 0;

test.c:

extern a;

int a = 20;

三.靜態區域性變數:只會定義一次,以後的定義,將自動忽略。要注意理解,靜態變數所說的重定義是指在函式的多次呼叫中,而不是在乙個函式體中定義多次。

#define _crt_secure_no_warnings

#include#includeint main(int argc, char *argv)

四.靜態全域性變數:靜態全域性變數只在當前原始檔有效。當外部extern宣告的外部全域性變數與靜態全域性變數在同一原始檔時,不會出現任何問題,程式能夠正常執行。

定義作用範圍

生命週期

記憶體區域

不初始化時變數的值

普通區域性變數

{}內部

復合語句中離它最近的{}內

離他最近的大括號之間

棧區內容隨機

普通全域性變數

函式外部

當前原始檔和其他extern修飾的原始檔

整個程序

全域性區0

靜態區域性變數

{}內部static修飾

離它最近的{}內

整個程序

全域性區0

靜態全域性變數

函式外部static修飾

當前原始檔有效,不能被外部檔案使用。

整個程序

全域性區0

C語言中的變數

開場白要吸引人.但是我不會 有人說我可以靠臉吃飯。可我偏偏選擇了手,哈哈哈 說笑 娛樂娛樂,下面我就來提提c語言中關於變數的意思 什麼是變數?沒錯 你看字面意思就可以理解,就是可以變得量,用專業一點的話就是程式中其值可以變化的量。變數有三個基本要素 變數名 每乙個變數都應該有乙個名字。變數的資料型別...

C語言中的變數

記憶體特點 讀寫速度快 掉電資料丟失 程式中去需要運算的資料也包括運算之後的結果要暫存到記憶體中 位元組 記憶體被分成一格一格的 每個格可以用來儲存乙個數字 每個格被稱為乙個位元組 儲存區 快取 buffer 計算機中將乙個位元組或者連續的多個位元組形成乙個儲存單元用來儲存數字 乙個位元組的儲存區只...

C語言中的變數

變數其實只不過是程式可操作的儲存區的名稱。c中每個變數都有特定的型別,型別決定了變數儲存的大小和布局,改範圍內的只都可以儲存在記憶體中,運算子可應用與變數上。變數的名稱可以有字母 數字和下劃線字元組成。它必須以字母或下劃線開頭。大小字母和小寫字母是不同的,因為c是大小寫敏感的。型別描述 char 通...