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

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

詳解C++中常量的類型與定義

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

常量是固定值,在程序執行期間不會改變。這些固定的值,又叫做字面量。
常量可以是任何的基本數據類型,可分為整型數字、浮點數字、字符、字符串和布爾值。
常量就像是常規的變量,只不過常量的值在定義后不能進行修改。

整數常量

整數常量可以是十進制、八進制或十六進制的常量。前綴指定基數:0x 或 0X 表示十六進制,0 表示八進制,不帶前綴則默認表示十進制。
整數常量也可以帶一個后綴,后綴是 U 和 L 的組合,U 表示無符號整數(unsigned),L 表示長整數(long)。后綴可以是大寫,也可以是小寫,U 和 L 的順序任意。
下面列舉幾個整數常量的實例:

212   // 合法的215u  // 合法的0xFeeL  // 合法的078   // 非法的:8 不是八進制的數字032UU  // 非法的:不能重復后綴

以下是各種類型的整數常量的實例:

85   // 十進制0213  // 八進制 0x4b  // 十六進制 30   // 整數 30u  // 無符號整數 30l  // 長整數 30ul  // 無符號長整數

浮點常量

浮點常量由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。
當使用小數形式表示時,必須包含小數點、指數,或同時包含兩者。當使用指數形式表示時,必須包含整數部分、小數部分,或同時包含兩者。帶符號的指數是用 e 或 E 引入的。
下面列舉幾個浮點常量的實例:

3.14159  // 合法的 314159E-5L // 合法的 510E   // 非法的:不完整的指數210f   // 非法的:沒有小數或指數.e55   // 非法的:缺少整數或分數

布爾常量

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

  • true 值代表真。
  • false 值代表假。

我們不應把 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 . . . 一個或多個數字的十六進制數

下面的實例顯示了一些轉義序列字符:

#include <iostream>using namespace std;int main(){ cout << "Hello/tWorld/n/n"; return 0;}

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

Hello World

字符串常量

字符串字面值或常量是括在雙引號 "" 中的。一個字符串包含類似于字符常量的字符:普通的字符、轉義序列和通用的字符。
您可以使用空格做分隔符,把一個很長的字符串常量進行分行。
下面的實例顯示了一些字符串常量。下面這三種形式所顯示的字符串是相同的。

"hello, dear""hello, /dear""hello, " "d" "ear"

定義常量

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

  • 使用 #define 預處理器。
  • 使用 const 關鍵字。

#define 預處理器

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

#define identifier value

具體請看下面的實例:

#include <iostream>using namespace std;#define LENGTH 10 #define WIDTH 5#define NEWLINE '/n'int main(){ int area;  area = LENGTH * WIDTH; cout << area; cout << NEWLINE; return 0;}

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

復制代碼 代碼如下:
50

const 關鍵字

您可以使用 const 前綴聲明指定類型的常量,如下所示:

const type variable = value;

具體請看下面的實例:

#include <iostream>using namespace std;int main(){ const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = '/n'; int area;  area = LENGTH * WIDTH; cout << area; cout << NEWLINE; return 0;}

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

復制代碼 代碼如下:
50

請注意,把常量定義為大寫字母形式,是一個很好的編程實踐。

常量的引用
如果是對一個常量進行引用,則編譯器首先建立一個臨時變量,然后將該常量的值置入臨時變量中,對該引用的操作就是對該臨時變量的操作。對C++常量引用可以用其它任何引用來初始化;但不能改變。

關于引用的初始化有兩點值得注意:

(1)當初始化值是一個左值(可以取得地址)時,沒有任何問題;

(2)當初始化值不是一個左值時,則只能對一個const T&(常量引用)賦值。而且這個賦值是有一個過程的:

首先將值隱式轉換到類型T,然后將這個轉換結果存放在一個臨時對象里,最后用這個臨時對象來初始化這個引用變量。

例子:

double& dr = 1; // 錯誤:需要左值 const double& cdr = 1; // ok 

第二句實際的過程如下:

double temp = double(1); const double& cdr = temp; 

作函數參數時:

// bc_temp_objects_not_bound_to_nonconst_ref.cpp // compile with: /EHsc #include "iostream" using namespace std; class C {}; void f(C & c) { cout << "C&" << endl; } void f(C const & c) { cout << "C const &" << endl; } int main() { f(C()); } 

結果:

復制代碼 代碼如下:
C const &

更直接的,用基本類型:

#include <iostream> using namespace std; void display(int const &ref) {cout<<ref<<'/n';} int main() { int i=1; display(i); int const anotheri=2; display(anotheri); display(2); display(1+2); display(static_cast<int>(3.14159)); } 

通過C++常量引用從函數返回一個局部對象:

一般從一個函數返回一個局部對象的引用是不對的:
 

T & my_op ( void ) { T t; return t; } // The T object t got destroyed here so the returned reference is not valid anymore. 

特殊情況:返回一個常引用

const T & my_op ( void ) { T t; return t; } const T & my_t_obj = my_op (); 

在這個情況下,局部變量 t 不會被直接析構,而是會保留到 my_t_obj 的生命周期結束為止。

總之,C++常量引用語法上可以引用一個臨時變量。這種方法在使用引用作函數參數和返回局部變量時有意義。我目前看來常量引用主要用在作函數參數或保證不修改原變量的時候。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久亚洲| 久久久久亚洲精品成人网小说| 欧美黑人xxxx| 精品国产一区久久久| 久久久久久网址| 欧美大秀在线观看| 中文字幕久热精品视频在线| 欧美自拍大量在线观看| 亚洲一区二区三区在线视频| 色综合伊人色综合网| 欧美亚洲另类制服自拍| 美女av一区二区三区| 欧美精品一区三区| 俺也去精品视频在线观看| 色在人av网站天堂精品| 亚洲精品成人久久电影| 欧美性资源免费| 日韩av影院在线观看| 精品亚洲一区二区三区在线播放| 最新国产精品亚洲| 国产一区二区黄| 亚洲精品国产拍免费91在线| 亚洲最大福利视频网| 国产成人综合精品在线| 久久色在线播放| 欧美国产亚洲精品久久久8v| 欲色天天网综合久久| 国产日韩中文字幕| 九九久久久久99精品| 久久成人国产精品| 亲爱的老师9免费观看全集电视剧| 日韩有码在线播放| 在线电影欧美日韩一区二区私密| 欧美成人免费小视频| 色哟哟亚洲精品一区二区| 欧美福利视频在线| 久久全球大尺度高清视频| 日韩在线免费视频| 国产精品视频公开费视频| 2018中文字幕一区二区三区| 美女视频黄免费的亚洲男人天堂| 国产日韩精品电影| 国产在线不卡精品| 亚洲精品久久7777777| 国产精品成久久久久三级| 欧美激情xxxx性bbbb| 中文字幕亚洲字幕| 国产精品色视频| 国产精品色悠悠| 欧美理论电影在线播放| 色婷婷**av毛片一区| 日韩中文视频免费在线观看| 色多多国产成人永久免费网站| 91久久久久久久久久久久久| 日本欧美一二三区| 精品视频中文字幕| 国产精品久久久一区| 亚洲综合精品一区二区| 8x海外华人永久免费日韩内陆视频| 欧美日韩亚洲激情| 成人一区二区电影| 亚洲丝袜在线视频| 国产一区二区在线免费视频| 欧美一区二区大胆人体摄影专业网站| 日韩欧美精品网站| 日韩在线视频免费观看高清中文| 欧美午夜视频在线观看| 日本不卡高字幕在线2019| 国产欧美亚洲精品| 久久亚洲电影天堂| 宅男66日本亚洲欧美视频| 岛国av在线不卡| 国产香蕉一区二区三区在线视频| 国产精品都在这里| 国产97在线亚洲| 欧美激情精品久久久久久大尺度| 国产日韩精品电影| 久久亚洲精品国产亚洲老地址| 欧美亚洲一区在线| 中日韩午夜理伦电影免费| 欧美成人三级视频网站| 国产精品一区二区在线| 欧美午夜性色大片在线观看| 日韩精品免费在线视频| 米奇精品一区二区三区在线观看| 中文字幕日韩在线播放| 国产精品稀缺呦系列在线| 国产成人一区二区三区| 狠狠躁夜夜躁久久躁别揉| 欧美日韩加勒比精品一区| 精品视频久久久久久| 精品亚洲一区二区三区在线播放| 日本a级片电影一区二区| 性色av一区二区三区红粉影视| 久久青草精品视频免费观看| 91tv亚洲精品香蕉国产一区7ujn| 亚洲国产精品成人av| 欧美精品制服第一页| 91情侣偷在线精品国产| 日韩免费观看高清| 国产精品高潮呻吟久久av野狼| 国产精品稀缺呦系列在线| 久久精品免费电影| 国产精选久久久久久| 91久久久久久久一区二区| 亚洲欧美激情在线视频| 亚洲欧美日韩成人| 成人黄色av免费在线观看| 免费91麻豆精品国产自产在线观看| 欧美黄色免费网站| 亚洲free性xxxx护士hd| 欧美激情极品视频| 国产精品日韩一区| 日韩中文字幕免费视频| 亚洲精品国产成人| 色噜噜狠狠狠综合曰曰曰88av| 亚洲电影免费观看高清完整版| 国产亚洲欧美日韩一区二区| 日韩欧美a级成人黄色| 九九热这里只有在线精品视| 最近2019中文字幕在线高清| 色偷偷888欧美精品久久久| 久久久久久久久久久亚洲| 日韩中文字幕视频| 国产福利成人在线| 国产这里只有精品| 91国产美女视频| 好吊成人免视频| 中文字幕欧美日韩在线| 97精品久久久中文字幕免费| 日韩av在线最新| 亚洲japanese制服美女| 国产成人短视频| 亚洲直播在线一区| 久久亚洲精品视频| 亚洲黄色有码视频| 96sao精品视频在线观看| 亚洲欧美综合v| 亚洲第一中文字幕在线观看| 久久久伊人欧美| 欧美性猛交视频| 亚洲激情国产精品| 国产精品高清在线| 欧美精品久久久久| 国产美女精品视频| 欧美激情欧美激情| 国产精品第100页| 国产精品高清在线| 高清欧美性猛交xxxx黑人猛交| 91精品视频播放| www.色综合| 日本精品久久中文字幕佐佐木| 一区国产精品视频| 亚洲欧美成人网| 色中色综合影院手机版在线观看| 国产精品吴梦梦| 久久精品视频免费播放| 国产精品爽爽爽爽爽爽在线观看| 欧美日韩国产中文精品字幕自在自线| 国产精品高潮粉嫩av| 夜色77av精品影院| 精品无人区乱码1区2区3区在线| 亚洲欧美第一页| 亚洲 日韩 国产第一|