亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中變量的類型與作用域學習教程

2020-01-26 14:36:58
字體:
來源:轉載
供稿:網友

C++ 變量類型

變量其實只不過是程序可操作的存儲區的名稱。C++ 中每個變量都有指定的類型,類型決定了變量存儲的大小和布局,該范圍內的值都可以存儲在內存中,運算符可應用于變量上。
變量的名稱可以由字母、數字和下劃線字符組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為 C++ 是大小寫敏感的。
基于前一章講解的基本類型,有以下幾種基本的變量類型,將在下面進行講解:

類型
描述
bool 存儲值 true 或 false。
char 通常是一個八位字節(一個字節)。這是一個整數類型。
int 對機器而言,整數的最自然的大小。
float 單精度浮點值。
double 雙精度浮點值。
void 表示類型的缺失。
wchar_t 寬字符類型。

C++ 也允許定義各種其他類型的變量,比如枚舉、指針、數組、引用、數據結構、類等等,這將會在后續的章節中進行講解。
下面我們將講解如何定義、聲明和使用各種類型的變量。
C++ 中的變量定義

變量定義就是告訴編譯器在何處創建變量的存儲,以及如何創建變量的存儲。變量定義指定一個數據類型,并包含了該類型的一個或多個變量的列表,如下所示:
type variable_list;
在這里,type 必須是一個有效的 C++ 數據類型,可以是 char、w_char、int、float、double、bool 或任何用戶自定義的對象,variable_list 可以由一個或多個標識符名稱組成,多個標識符之間用逗號分隔。下面列出幾個有效的聲明:

int i, j, k;char c, ch;float f, salary;double d;

行 int i, j, k; 聲明并定義了變量 i、j 和 k,這指示編譯器創建類型為 int 的名為 i、j、k 的變量。
變量可以在聲明的時候被初始化(指定一個初始值)。初始化器由一個等號,后跟一個常量表達式組成,如下所示:

type variable_name = value;

下面列舉幾個實例:

extern int d = 3, f = 5; // d 和 f 的聲明 int d = 3, f = 5;  // 定義并初始化 d 和 fbyte z = 22;  // 定義并初始化 zchar x = 'x';  // 變量 x 的值為 'x'

不帶初始化的定義:帶有靜態存儲持續時間的變量會被隱式初始化為 NULL(所有字節的值都是 0),其他所有變量的初始值是未定義的。
C++ 中的變量聲明

變量聲明向編譯器保證變量以給定的類型和名稱存在,這樣編譯器在不需要知道變量完整細節的情況下也能繼續進一步的編譯。變量聲明只在編譯時有它的意義,在程序連接時編譯器需要實際的變量聲明。
當您使用多個文件且只在其中一個文件中定義變量時(定義變量的文件在程序連接時是可用的),變量聲明就顯得非常有用。您可以使用 extern 關鍵字在任何地方聲明一個變量。雖然您可以在 C++ 程序中多次聲明一個變量,但變量只能在某個文件、函數或代碼塊中被定義一次。
實例:

嘗試下面的實例,其中,變量在頭部就已經被聲明,但它們是在主函數內被定義和初始化的:

#include <iostream>using namespace std;// 變量聲明extern int a, b;extern int c;extern float f;int main (){ // 變量定義 int a, b; int c; float f; // 實際初始化 a = 10; b = 20; c = a + b; cout << c << endl ; f = 70.0/3.0; cout << f << endl ; return 0;}

當上面的代碼被編譯和執行時,它會產生下列結果:

3023.3333

同樣的,在函數聲明時,提供一個函數名,而函數的實際定義則可以在任何地方進行。例如:

// 函數聲明int func();int main(){ // 函數調用 int i = func();}// 函數定義int func(){ return 0;}

C++ 中的左值(Lvalues)和右值(Rvalues)

C++ 中有兩種類型的表達式:
左值(lvalue):指向內存位置的表達式被稱為左值(lvalue)表達式。左值可以出現在賦值號的左邊或右邊。
右值(rvalue):術語右值(rvalue)指的是存儲在內存中某些地址的數值。右值是不能對其進行賦值的表達式,也就是說,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊。
變量是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。下面是一個有效的語句:

int g = 20;

但是下面這個就不是一個有效的語句,會生成編譯時錯誤:

10 = 20;

變量作用域
作用域是程序的一個區域,一般來說有三個地方可以聲明變量:

  • 在函數或一個代碼塊內部聲明的變量,稱為局部變量。
  • 在函數參數的定義中聲明的變量,稱為形式參數。
  • 在所有函數外部聲明的變量,稱為全局變量。
  • 我們將在后續的章節中學習什么是函數和參數。本章我們先來講解聲明是局部變量和全局變量。

局部變量

在函數或一個代碼塊內部聲明的變量,稱為局部變量。它們只能被函數內部或者代碼塊內部的語句使用。下面的實例使用了局部變量:

#include <iostream>using namespace std;int main (){ // 局部變量聲明 int a, b; int c; // 實際初始化 a = 10; b = 20; c = a + b; cout << c; return 0;}

全局變量

在所有函數外部定義的變量(通常是在程序的頭部),稱為全局變量。全局變量的值在程序的整個生命周期內都是有效的。
全局變量可以被任何函數訪問。也就是說,全局變量一旦聲明,在整個程序中都是可用的。下面的實例使用了全局變量和局部變量:

#include <iostream>using namespace std;// 全局變量聲明int g;int main (){ // 局部變量聲明 int a, b; // 實際初始化 a = 10; b = 20; g = a + b; cout << g; return 0;}

在程序中,局部變量和全局變量的名稱可以相同,但是在函數內,局部變量的值會覆蓋全局變量的值。下面是一個實例:

#include <iostream>using namespace std;// 全局變量聲明int g = 20;int main (){ // 局部變量聲明 int g = 10; cout << g; return 0;}

當上面的代碼被編譯和執行時,它會產生下列結果:

復制代碼 代碼如下:
10

初始化局部變量和全局變量

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

數據類型 初始化默認值
int 0
char '/0'
float 0
double 0
pointer NULL

正確地初始化變量是一個良好的編程習慣,否則有時候程序可能會產生意想不到的結果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区美女视频| 亚洲精品国产精品自产a区红杏吧| 国产成人精品久久亚洲高清不卡| 日产精品久久久一区二区福利| 久久人人爽人人爽人人片av高清| 国产亚洲精品久久久久久牛牛| 羞羞色国产精品| 国产丝袜视频一区| 欧美最猛性xxxxx亚洲精品| www.欧美三级电影.com| 欧美剧在线观看| 一本色道久久88精品综合| 亚洲色图综合网| 亚洲福利在线播放| 亚洲人成电影在线观看天堂色| 亚洲色图五月天| 亚洲国产成人一区| 色偷偷噜噜噜亚洲男人的天堂| 国产精品入口福利| 国产精品久久久久久av| 2025国产精品视频| 粉嫩老牛aⅴ一区二区三区| 国产69精品久久久久久| 91日本在线观看| 亚洲精品久久久一区二区三区| 中文字幕亚洲精品| 久久成人一区二区| 欧洲日韩成人av| 国产精品一二区| 国产精品视频26uuu| 亚洲精品国产suv| 国产成人在线视频| 国产激情视频一区| 日韩在线视频中文字幕| 国产日本欧美一区二区三区在线| 国产女人精品视频| 在线播放日韩欧美| 欧美孕妇孕交黑巨大网站| 欧美贵妇videos办公室| 午夜精品久久久久久久久久久久| 日韩免费观看视频| 久久精品99无色码中文字幕| 国产精品久久久久久中文字| 国产精品第一页在线| 亚洲精品一区二区三区婷婷月| 国产精品va在线播放我和闺蜜| 亚洲va久久久噜噜噜| 一区二区三区视频免费| 日韩在线观看免费全| 亚洲成人av在线| 欧美日韩美女在线观看| 欧美裸体视频网站| 国产视频精品一区二区三区| 久久久久国产精品免费网站| 成人av番号网| 亚洲天堂男人天堂| 91精品国产九九九久久久亚洲| 欧美国产极速在线| 97av在线视频| 欧美午夜xxx| 精品成人在线视频| 日韩在线一区二区三区免费视频| 国语自产偷拍精品视频偷| 韩国19禁主播vip福利视频| 成人动漫网站在线观看| 久热精品视频在线| 日韩av一区在线观看| 国产伊人精品在线| 欧美人成在线视频| 97色在线视频观看| 亚洲人线精品午夜| 亚洲人成电影网站色xx| 国产欧美日韩综合精品| 日韩欧美视频一区二区三区| 51久久精品夜色国产麻豆| 日韩国产在线播放| 欧美激情一区二区久久久| 欧美一级在线播放| 岛国av一区二区三区| 韩国三级电影久久久久久| 国产亚洲精品美女久久久久| 国产成人一区二区三区电影| 国产乱人伦真实精品视频| 亚洲欧洲一区二区三区久久| 日韩精品视频免费在线观看| 日韩av在线网址| 色噜噜亚洲精品中文字幕| 亚洲国产另类久久精品| 欧美日本在线视频中文字字幕| 久久精品视频在线播放| 欧美三级欧美成人高清www| 亚洲网址你懂得| 精品亚洲精品福利线在观看| 性欧美xxxx| 日本欧美爱爱爱| 精品国产乱码久久久久酒店| 午夜精品一区二区三区在线| 成人精品久久一区二区三区| 97在线观看免费高清| 国a精品视频大全| 日韩成人xxxx| 国产精品久久久久久一区二区| 久久久999精品免费| 精品丝袜一区二区三区| 最近2019好看的中文字幕免费| 91久久精品久久国产性色也91| 最近2019中文字幕在线高清| 欧美精品电影免费在线观看| 国产精品日韩欧美综合| 国产精品女主播视频| 国产精品pans私拍| 精品亚洲一区二区三区四区五区| 最近2019年好看中文字幕视频| 国产精品揄拍一区二区| 日韩专区在线播放| 成人激情视频在线| 国产视频精品久久久| 欧美中文字幕第一页| 欧美一级黑人aaaaaaa做受| 热久久这里只有精品| 日韩免费电影在线观看| 亚洲国产日韩精品在线| 欧美性极品xxxx娇小| 欧美xxxx18性欧美| 亚洲欧洲成视频免费观看| 久久福利视频导航| 亚洲自拍小视频| 美日韩精品视频免费看| 欧洲日本亚洲国产区| 欧美放荡办公室videos4k| 亚洲韩国青草视频| 日韩亚洲一区二区| 尤物九九久久国产精品的特点| 欧美怡红院视频一区二区三区| 精品成人69xx.xyz| 狠狠操狠狠色综合网| 影音先锋欧美在线资源| 国内精品久久久久久久| 正在播放亚洲1区| 久久久免费观看| 国产精品第8页| 久久精品中文字幕电影| 久久久久久久一区二区三区| 欧美日韩国产精品一区二区不卡中文| 黑人巨大精品欧美一区二区| 久热在线中文字幕色999舞| 亚洲福利视频网站| 91欧美精品成人综合在线观看| 国产一区二区日韩精品欧美精品| 久久久噜噜噜久噜久久| 亚洲精品之草原avav久久| 国产午夜精品视频| 亚洲国产美女精品久久久久∴| 91九色单男在线观看| 日本成人免费在线| 国产成人精品视频在线观看| 国产精品综合不卡av| 一区二区三区回区在观看免费视频| 国产日韩欧美一二三区| 欧美日韩在线观看视频| 韩国一区二区电影| 北条麻妃一区二区三区中文字幕| 国产精品欧美一区二区三区奶水| 欧美精品在线播放|