C 之變數和常量

2021-08-30 14:03:09 字數 3757 閱讀 5801

c++ 中每個變數都有指定的型別,型別決定了變數儲存的大小和布局,該範圍內的值都可以儲存在記憶體中,運算子可應用於變數上。

變數的名稱可以由字母、數字和下劃線字元組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為 c++ 是大小寫敏感的。

型別描述

bool

儲存值 true 或 false。

char

通常是乙個八位位元組(乙個字元)。這是乙個整數型別。

int對機器而言,整數的最自然的大小。

float

單精度浮點值。單精度是這樣的格式,1位符號,8位指數,23位小數。

雙精度浮點值。雙精度是1位符號,11位指數,52位小數。

表示型別的缺失。

wchar_t

寬字元型別。

c++ 也允許定義各種其他型別的變數,比如列舉、指標、陣列、引用、資料結構、類等等

變數初始化:

變數可以在宣告的時候被初始化(指定乙個初始值)。

不帶初始化的定義:帶有靜態儲存持續時間的變數會被隱式初始化為 null(所有位元組的值都是 0),其他所有變數的初始值是未定義的。

變數宣告向編譯器保證變數以給定的型別和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數宣告只在編譯時有它的意義,在程式連線時編譯器需要實際的變數宣告。

當您使用多個檔案且只在其中乙個檔案中定義變數時(定義變數的檔案在程式連線時是可用的),變數宣告就顯得非常有用。您可以使用extern關鍵字在任何地方宣告乙個變數。雖然您可以在 c++ 程式中多次宣告乙個變數,但變數只能在某個檔案、函式或**塊中被定義一次。

宣告和定義的作用區別:

#include using namespace std;

// 變數宣告

extern int a, b;

extern int c;

extern float f;

int main ()

同樣:函式也有宣告和定義

c++ 中有兩種型別的表示式:

作用域是程式的乙個區域,一般來說有三個地方可以定義變數:

當區域性變數被定義時,系統不會對其初始化,您必須自行對其初始化。定義全域性變數時,系統會自動初始化為下列值:

資料型別

初始化預設值

int0

char

'\0'

float

0double

0pointer

null

正確地初始化變數是乙個良好的程式設計習慣,否則有時候程式可能會產生意想不到的結果。

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

常量可以是任何的基本資料型別,可分為整型數字、浮點數字、字元、字串和布林值。

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

整數常量可以是十進位制、八進位制或十六進製制的常量。字首指定基數:0x 或 0x 表示十六進製制,0 表示八進位制,不帶字首則預設表示十進位制。

整數常量也可以帶乙個字尾,字尾是 u 和 l 的組合,u 表示無符號整數(unsigned),l 表示長整數(long)。字尾可以是大寫,也可以是小寫,u 和 l 的順序任意。

浮點常量由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。

當使用小數形式表示時,必須包含整數部分、小數部分,或同時包含兩者。當使用指數形式表示時, 必須包含小數點、指數,或同時包含兩者。帶符號的指數是用 e 或 e 引入的。

3.14159       // 合法的 

314159e-5l // 合法的

510e // 非法的:不完整的指數

210f // 非法的:沒有小數或指數

.e55 // 非法的:缺少整數或分數

布林常量共有兩個,它們都是標準的 c++ 關鍵字:

我們不應把 true 的值看成 1,把 false 的值看成 0。

字元常量是括在單引號中。如果常量以 l(僅當大寫時)開頭,則表示它是乙個寬字元常量(例如 l'x'),此時它必須儲存在wchar_t型別的變數中。否則,它就是乙個窄字元常量(例如 'x'),此時它可以儲存在char型別的簡單變數中。

字元常量可以是乙個普通的字元(例如 'x')、乙個轉義序列(例如 '\t'),或乙個通用的字元(例如 '\u02c0')。

在 c++ 中,有一些特定的字元,當它們前面有反斜槓時,它們就具有特殊的含義,被用來表示如換行符(\n)或製表符(\t)等。下表列出了一些這樣的轉義序列碼:

轉義序列

含義\\

\ 字元

\'' 字元

\"" 字元

\?? 字元

\a警報鈴聲

\b退格鍵

\f換頁符

\n換行符

\r回車

\t水平製表符

\v垂直製表符

\ooo

一到三位的八進位制數

\xhh . . .

乙個或多個數字的十六進製制數

字串字面值或常量是括在雙引號 "" 中的。乙個字串包含類似於字元常量的字元:普通的字元、轉義序列和通用的字元。

您可以使用空格做分隔符,把乙個很長的字串常量進行分行。

下面的例項顯示了一些字串常量。下面這三種形式所顯示的字串是相同的。

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

下面是使用 #define 預處理器定義常量的形式:

#define identifier value
例項:

#include using namespace std;

#define length 10

#define width 5

#define newline '\n'

int main()

您可以使用const字首宣告指定型別的常量,如下所示:

const type variable = value;
例項:

#include using namespace std;

int main()

型別限定符提供了變數的額外資訊。

限定符含義

const

const型別的物件在程式執行期間不能被修改改變。

volatile

修飾符volatile告訴編譯器不需要優化volatile宣告的變數,讓程式可以直接從記憶體中讀取變數。對於一般的變數編譯器會對變數進行優化,將記憶體中的變數值放在暫存器中以加快讀寫效率。

restrict

restrict修飾的指標是唯一一種訪問它所指向的物件的方式。只有 c99 增加了新的型別限定符 restrict。

革命尚未成功,同志仍需努力。

10 C高階之變數和常量

10.1.變數和常量及基本概念 1 變數即在程式的執行過程中可通過 改變其值的量。常量即在程式的執行過程中永不改變的量。2 作用域 起作用的區域,也就是可以工作的範圍。塊 所謂 塊,就是用 括起來的一段 資料段 資料段存的是數,像全域性變數就是存在資料段的。段 存的是程式 一般是唯讀的。棧 stac...

Python基礎之變數和常量

將運算得到中間結果暫存到記憶體,以便後續程式呼叫。變數的命名規則 1.變數由字母 數字 下劃線搭配組合而成 2.不能以數字開頭,更不能全是數字 3.不能是python中的關鍵字,這些符號和字母已經被python占用,不能使用 4.不能用中文 5.名字要有意義 6.不要太長 命名規範 下劃線 每個單詞...

C語言之變數與常量

關於變數 常量 型別和運算子等。2.1 變數名 變數名由字母和數字組成,首字母必須是字母,下劃線 看作是字母,所以可以放在首字母。但是,盡量不用用下劃線作為首字母,因為在庫函式中經常這樣命名。變數名用小寫字母,符號常量用大寫字母。變數名字的選擇需要根據實際目的,區域性變數用短名,外部變數用長名。2....