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

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

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

2020-05-23 14:04:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了詳解C++中常量的類型與定義,使用#define與const來定義常量是C++入門學習中的基礎知識,需要的朋友可以參考下
 

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

整數常量

整數常量可以是十進制、八進制或十六進制的常量。前綴指定基數: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
欧美精品国产精品日韩精品| 久久久久久久久久久成人| 热门国产精品亚洲第一区在线| 午夜精品三级视频福利| 精品国产精品三级精品av网址| 久久久久久久久久久网站| xxx欧美精品| 亚洲天堂男人天堂女人天堂| 中文字幕无线精品亚洲乱码一区| 欧美激情精品久久久久久蜜臀| 国产精品久久77777| 日韩有码在线视频| 久久精品青青大伊人av| 岛国av在线不卡| 日韩黄在线观看| 日本一欧美一欧美一亚洲视频| 91精品久久久久久久久久久| 在线播放亚洲激情| 91精品国产高清久久久久久久久| 欧美黄色小视频| 欧美亚洲另类在线| 成人激情视频在线观看| 综合av色偷偷网| 91精品国产综合久久男男| 国产成人一区二区三区电影| 2018中文字幕一区二区三区| 国产+人+亚洲| 欧美疯狂做受xxxx高潮| 亚洲精品短视频| 欧美日韩亚洲国产一区| 欧美丝袜美女中出在线| www.久久草.com| 国产精品久久久久av免费| 日韩中文av在线| 日韩中文综合网| 国产成人精品在线播放| 久久久国产精品一区| 久久久久国色av免费观看性色| 日韩欧美在线视频日韩欧美在线视频| 日韩色av导航| 性欧美暴力猛交69hd| 成人免费激情视频| 亚洲成在人线av| 成人国产精品免费视频| 欧美一区深夜视频| 成人激情春色网| 亚洲人成免费电影| 综合欧美国产视频二区| 久久福利视频导航| 精品日韩视频在线观看| 欧美日韩国产丝袜另类| 69久久夜色精品国产69| 欧美激情免费视频| 欧美xxxx做受欧美.88| 欧美国产精品日韩| 国内揄拍国内精品少妇国语| 欧美日韩高清在线观看| 超碰97人人做人人爱少妇| 国内外成人免费激情在线视频网站| 96精品久久久久中文字幕| 日韩亚洲欧美中文在线| 国产精品丝袜一区二区三区| 欧美激情手机在线视频| 中文字幕久精品免费视频| 亚洲美女中文字幕| 久久国产加勒比精品无码| 日韩av高清不卡| 尤物yw午夜国产精品视频| 日韩在线一区二区三区免费视频| 奇米四色中文综合久久| 日韩免费在线观看视频| 日韩欧美第一页| 91爱视频在线| 亚洲成avwww人| 亚洲综合在线中文字幕| 亚洲精品日韩丝袜精品| 国产精品久久在线观看| 韩国精品久久久999| 国产亚洲人成a一在线v站| 欧美猛少妇色xxxxx| 亚洲男人的天堂网站| 成人网欧美在线视频| 深夜福利一区二区| 亚洲社区在线观看| 久久天天躁狠狠躁老女人| 国产亚洲人成网站在线观看| 精品国产区一区二区三区在线观看| 九九久久久久久久久激情| 久久91超碰青草是什么| 亚洲第一区中文字幕| 国产午夜精品美女视频明星a级| 日本一区二区不卡| 久久精品亚洲国产| 2019中文字幕在线| 日韩视频在线一区| 日韩中文字幕在线视频播放| 亚洲国产精品久久91精品| 亚洲va久久久噜噜噜| 九九精品在线观看| 日韩在线国产精品| 欧美黑人性生活视频| 91精品久久久久久久久久久久久久| 欧美精品videosex性欧美| 亚洲第一精品福利| 精品亚洲夜色av98在线观看| 日本三级韩国三级久久| 欧美激情xxxx性bbbb| 欧美成人午夜免费视在线看片| 日韩中文有码在线视频| 91av在线播放| 日韩福利伦理影院免费| 最近2019年日本中文免费字幕| 成人性生交xxxxx网站| 91精品国产精品| 欧美一级在线亚洲天堂| 国产成人亚洲综合青青| 欧美性xxxx极品hd欧美风情| 成人国产精品一区二区| 久久九九国产精品怡红院| 日韩精品视频免费在线观看| 91精品国产综合久久香蕉| 日韩av在线一区二区| 久久好看免费视频| 久久国产精品久久久久久久久久| 亚洲激情视频在线播放| 亚洲精品视频免费在线观看| 激情成人在线视频| 日韩av观看网址| 国产在线拍偷自揄拍精品| 亚洲国产成人在线视频| 国产第一区电影| 国产精品一区二区女厕厕| 黄网动漫久久久| 精品女同一区二区三区在线播放| 2021久久精品国产99国产精品| 亚洲国产精品va在线看黑人动漫| 欧美一级bbbbb性bbbb喷潮片| 国产精品久久国产精品99gif| 精品福利免费观看| 国产精品27p| 欧美视频13p| 亚洲精品久久久久久下一站| 亚洲天堂网站在线观看视频| 亚洲欧美成人一区二区在线电影| 国产精品丝袜久久久久久不卡| 97在线视频免费| 欧美一级高清免费播放| 久久99国产精品自在自在app| 91高清在线免费观看| 亚洲精品国产拍免费91在线| 亚洲专区在线视频| 成人淫片在线看| 亚洲久久久久久久久久| 欧美韩日一区二区| 亚洲国产成人精品女人久久久| 成人精品久久一区二区三区| 久久综合伊人77777尤物| 日韩电影免费观看中文字幕| 欧美日韩一区二区免费在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 久久伊人精品视频| 国产精彩精品视频| 久久欧美在线电影| 欧美高跟鞋交xxxxxhd|