const 常量與 define常量的區別
c++中的常量可以使用const定義,也可以使用#define宏定義的方式;二者區別如下:
- **區別**
1. const定義的常量有自己的數據類型,編譯器可以對其進行嚴格的類型檢查;但是define定義的宏常量沒有數據類型,執行時只會對其進行字符替換,不會進行類型檢查;
2. const定義的常量,在程序運行時存在與常量表中,系統會為其進行內存分配;但是define定義的宏常量,在預處理階段只是會將define定義的內容進行直接替換,在程序執行的時候常量表中沒有用define定義的宏常量,系統不會為其進行內存分配。
3. define定義表達式時要註意“邊緣效應”;如#define N 2+1 ;2*N; //這個結果應該是2x2+1=5,不是6;這就是“邊緣效應”;
4. const定義的常量常被稱為常變量或者只讀變量,是因為它有類型,會進行類型檢查;而且const可以在任何地方定義常量,在執行過程中,編譯器對其的處理過程與變量相似,只是內存的分配地方不同;
const 常量與 define常量的區別
相關推薦
const 常量與 define常量的區別
應該 自己 常量 con 而且 fin 表達 進行 替換 c++中的常量可以使用const定義,也可以使用#define宏定義的方式;二者區別如下: - **區別** 1. const定義的常量有自己的數據類型,編譯器可以對其進行嚴格的類型檢查;但是define定義的宏常
const的用法 & 與define 的區別
關鍵字const是用來定義常變數的,一個變數如果被const修飾那麼他的值就不能被改變 還有#define,#define是在預編譯的時候進行處理的 先講講#define的用法 #include <stdio.h> #define CALC(x) x*x
常量與變數的區別
常量區分為不同的型別,如25、0、-8為整形常量,6.8、-7.89為實型常量,‘a’‘b’為字元常量。常量一般從其字面形式即可判斷。這種常量稱為字面常量或直接常量。 變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。在指令
介面(類)常量與列舉常量的區別
一、分析 常量的宣告是每一個專案中不可或缺的,在Java1.5之前,我們只有兩種方式的宣告:類常量和介面常量。不過,在1.5版之後有了改進,即新增了一種常量宣告方式,列舉常量。程式碼如下: enum Season{ Spring,Summer,Autumn,Wint
c++中列舉常量與巨集常量的一點區別
#include <iostream> using namespace std; class A { enum { APPLE = 111 }; #define PEAR 333 p
const 與 #define的區別
在c程式中,const的用法主要有定義常量、修飾函式引數、修飾函式返回值等3個用處;在c++程式中,它還可以修飾函式的定義體,定義類中某個成員函式為恆態函式,即不改變類中的資料成員 1)const 有資料型別,而巨集沒有資料型別,編譯器可以對前者進行型別安全檢查,而對後者
PHP const 與 define的區別
1、const用於類成員變數定義,一旦定義且不能改變其值。define定義全域性常量,在任何地方都可以訪問。 2、define不能在類中定義而const可以。 3、const不能在條件語句中定義常量 if (...) { const FOO = 'BAR';
內聯函數與#define的區別
用處 fine 使用 del inline 修飾 安全 很多 編譯 內聯函數從源代碼層看,有函數的結構,而在編譯後,卻不具備函數的性質。內聯函數不是在調用時發生控制轉移,而是在編譯時將函數體嵌入在每一個調用處。編譯時,類似宏替換,使用函數體替換調用處的函數名。一般在代碼
typdef與define的區別
轉自某網友,之前不懂事沒有留下原連結。 #define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程式時才會發現可能的錯誤並報錯。例如: #define PI 3.1415926 程式中的:area=PIrr 會替換
typedef 與 #define 的區別
typedef根據名字就知道是對類的定義。但是值得注意的是,它並不定義新的型別,而是對已有的型別定義一個其他的名字。本人生就略愚,常常搞不清與#define的關係,難道僅僅是所定義得到的新型別所在的位置不同嗎?首先我們仔細看看typedef。 一、typedef的用法 人
const iterator與const_iterator的區別
const iterator與const_iterator的區別 const iterator相當於指標常量。即,指標本身為常量,指標自身不可修改,但指向內容可修改。 const_iterator相當於常量指標。即,指標指向的內容為常量,指標本身可修改,但指向內容不可修
C# 靜態常量與動態常量
目錄 什麼是靜態常量(Const)和動態常量(Readonly) 靜態常量(Const)和動態常量(Readonly)之間的區別 動態常量(Readonly)被賦值後不可以改變 總結 什麼是靜態常量(Const)和動態常量(Readonly) 先解釋下什麼
c語言const關鍵字與巨集的區別
這是因為和巨集比起來: 1. const修飾的是一個變數,所以會在程式碼編譯階段進行語法檢查。 而巨集只會在預編譯階段進行簡單的替換動作; 2. 使用const修飾的是一個變數,具有具體的資料型別,所以編譯器會進行型別檢查。 3. 可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。 以常見的strcpy
PHP常量定義define與const
擴展 cal 規範 作用 pat one spa 優先 php 一、const PHP5.3以前,const只能在類內部聲明變量,5.3+允許在外部聲明變量,但還不能使用常量計算! const ONE = 1; const WORD = ‘hello world‘
php const和define的區別(php類中如何定義常量)
大家都知道define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例: <?php//在類外面通常這樣定義常量define("PHP","phpddt.com");classMyClass{//常量的值將始終保持不變。在定義和使
預處理、const、static與sizeof-使用const與#define的特點及區別
特點 周期 sizeof 傳遞 const常量 fin 參數 編譯器 run 1:#define只是用來做文本替換的。例如: #define PI 3.1415926 float angle; angle=30*PI/180; 那麽,程序進行編譯的時候,編譯器會
常量指標與指標常量的區別(轉帖)
三個名詞雖然非常繞嘴,不過說的非常準確。用中國話的語義分析就可以很方便地把三個概念區分開。 一) 常量指標。 常量是形容詞,指標是名詞,以指標為中心的一個偏正結構短語。這樣看,常量指標本質是指標,常量修飾它,表示這個指標乃是一個指向常量的指標(變數)。 指標指向的物件是常量,那麼這個物件
整型常量與實型常量、符號常量和字元常量的區別
1.我們說的整型常量指的是一種不變的值,可以用十進位制、八進位制、十六進位制來表示,如(12,89;012,-067;0xF,-0x12等) 2.實型常量只能用十進位制來表示,例如110.33,-9920.292這些以定格形式來表示的實型常量;還有1.25E-3(即1.25x0.001)
C#兩種常量型別,readonly(執行時常量)與const(編譯時常量)
C#中有兩種常量型別,分別為readonly(執行時常量)與const(編譯時常量),本文將就這兩種型別的不同特性進行比較並說明各自的適用場景。 工作原理 readonly為執行時常量,程式執行時進行賦值,賦值完成後便無法更改,因此也有人稱其為只讀變數
C語言之變數、常量(define\const)、變數的宣告和定義
記憶體地址 #include<stdio.h> #include<stdlib.h> #include<Windows.h> void main(){ int num = 10; int num1 = 20; int num2