1樓:匿名使用者
像 42 這樣的值,在程式中被當作字面值常量。稱之為字面值是因為只能用它的值稱呼它,稱之為常量是因為它的值不能修改。每個字面值都有相應的型別,例如:
0 是 int 型,3.14159 是 double 型。只有內建型別存在字面值,沒有類型別的字面值。
因此,也沒有任何標準庫型別的字面值。 c++ primer中2.2
2樓:匿名使用者
1、const常量是不允許被賦值的。
2、由編譯器確定值叫初始化,由c/c++**確定值就叫賦值,不叫初始化而叫賦初值了。const變數只有初始化的份兒(而且必須初始化),根本不能被賦值(哪怕是初值);如果能被賦值,還叫什麼const(只讀)變數?再大的陣列,初始化為0時很好辦,只要把首元素初始化為0,其餘的都被編譯器自動置0了。
3樓:匿名使用者
1、值替代 c語言中前處理器用值代替名字:
#define bufsize 100 這種方式在c++中依然適用,同時 c++用const把值代替帶進編譯器領域: const bufsize = 100 ;或 const int bufsize = 100 ; 同時還可以執行常量摺疊: char buf[bufsize] ;1.
1 標頭檔案裡的const 與使用#define一樣,使用const必須把const定義放在標頭檔案裡。這樣,通過包含標頭檔案,可把const定義單獨放在一個地方,並把她分配給一個編譯單元。const預設為內部連線,即僅在const被定義過的檔案裡才是可見的,而在連線時不能被其他編譯單元看到。
比如說在test.h中定義了,
const int ntestconst = 1000; 在a.cpp中include"test.h" 同時在b.
cpp中include"test.h" 不會出現,當沒有定義為const時,因變數定義出現兩次而出錯的情形. 當定義一個const常量時,必須賦一個值給它,除非用extern作了清楚的說明:
extern const bufsize ; 雖然上面的extern強制進行了儲存空間分配,但c++編譯器並不為const分配儲存空間,相反它把這個定義儲存在它的符號表裡。當const被使用時,它在編譯時會進行常量摺疊。 1.
2 const的安全性 如果想要一個值保持不變,就應該使它成為一個常量(const)。 1.3 集合 const可以用於集合,但必須分配記憶體,意味著「不能改變的一塊儲存」。
但其值在編譯時不能被使用。
const int i = ;
// float f [ i [3] ]; // illegal 2,指標 當使用帶有指標的const時,有兩種選擇:1、或者const修飾指標正指向的物件,2、const修飾儲存在指標本身的地址。 2.
1 指向const的指標 使用指標定義的技巧,正如任何複雜的定義一樣,是在識別符號的開始處讀它並從裡到外讀。如果我們要使正指向的元素不發生改變,得寫:
const int * x; 從識別符號開始:「x 是一個指標,指向一個const int。」 把const從一邊移到另一邊,結果一樣。
int const * x; 2.2 cosnt指標 是指標本身成為一個const指標,必須把const標明的部分放在*的右邊,如:
int d = 1;
int * const x = &d; 指標本身是const指標,編譯器要求給它一個初始化值,這個值在指標壽命期間不變。然而要改變它所指向的值是可以的,可以寫*x = 2。 這些可以總結成這樣一句話:
以*為分界點, 當const在*的左邊時,實際物體值不變 當const在*的右邊時,指標不變, 即,左物右指 這樣來記比較方便!! ---摘自 http://webservices.
ctocio.com.cn/net/157/9255157.
shtml
c語言中是如何定義常量的啊
4樓:劉世媛
我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。
例如:定義常量pi的兩種方式:
1. #define pi 3.1415926f;
2. const float pi 3.1415926f;
常量有整型常量、浮點型常量、字元型常量及字串常量。 『常量定義是指定義符號常量,用一個識別符號來代表一個常量,通過巨集定義預處理指令來實現。
格式:#define識別符號常量
由使用者命名的識別符號是符號常量名。作為符號常量名,一般大寫。一旦定義,在程式中凡是出現常量的地方均可用符號常量名來代替。
對使用了符號常量的程式在編譯前會以實際常量替代符號常量。
全域性變數和區域性變數的區別:
5樓:匿名使用者
#define count 60
這叫巨集定義,不叫常量
常量的定義:
const int count = 60;
形參指定型別,實參指定數值
6樓:天雲一號
c語言定義常量常用的方法有以下2種:
第一種:巨集定義
#define n 3 // 定義了一個常量為3的巨集n,在程式中n就代表3
第二種:給變數初始化賦值
int a = 2; // 定義了一個int型變數,並賦值為2,其實這是用變數來定義常量
注:定義常量還是用巨集定義的比較多。
7樓:匿名使用者
常量的定義:
#define count 60
這就定義了一個常量 count 它的值是一個常量60 在整個程式中不變
關於實際引數和,形式引數:
可以這樣通俗的去理解:
主調函式中的引數是實際引數,被調函式中的引數是形式引數,比如說:如下**段
被調函式:
int max(int a,int b)
主調函式:
main()
在北調函式max(int a,int b)中a,b是形式引數在主函式中max(a,b)中的a,b是實際引數;
8樓:匿名使用者
可以用預處理命令#indefine
和const靜態定義個數便是常量
形參就是函式定義時,所給的引數;而實參就是在main函式中呼叫時所使用的引數,兩者可以相同也可以不相同。
9樓:匿名使用者
實參在主調函式中,形參在被調函式中
當使用的是值傳遞方式時,實參值傳遞給形參,但是形參不把值傳回實參,即單向傳遞。
當使用地址傳遞時,實參地址傳遞給形參,形參把地址傳回實參,是雙向傳遞。
10樓:
#define
定義在全域性區
11樓:☆行雲流水
#define count 100
實參在主調函式中,形參在被調函式中
c語言中是如何定義常量的啊?
12樓:迠寋漧
c語言定義常量常用的方法有以下2種:
第一種:巨集定義
#define n 3 // 定義了一個常量為3的巨集n,在程式中n就代表3
第二種:給變數初始化賦值
int a = 2; // 定義了一個int型變數,並賦值為2,其實這是用變數來定義常量
注:定義常量還是用巨集定義的比較多。
C語言賦值和初始化的區別,c語言賦值中什麼叫初始化賦值,和賦值有什麼區別嗎
在定義了一個變數後就會給變數分配一個地址,但不會自動賦值,只有執行的時候,若變數依然沒有賦值,結果要使用此變數的時候會隨機賦值。定義一個某型別的變數,系統就會給它分配一個地址,大小就是這個型別的大小。如果你沒初始化,系統中這個變數指向的地址裡邊可能以前已經存了一個數,這個數是多少?未知的。所以說變數...
在C語言中,不能將常量賦值給表示式這句話該怎麼理解
比如 賦值一般是 int a 5 那麼就是賦值但是你要是 x y 5 這樣顯然是不對的這個是數學中的等式 不是c語言中的賦值 有問題請追問 滿意記得采納 所謂賦值,例如int x y x 6 x是有地址,在記憶體中是有空間的,你可以用 x來取x的地址,但是表示式,例如x y,這個整個表示式,是沒有地...
C語言判斷正誤。。賦值的問題,C語言 判斷直接賦值問題
char s 定義一個字元類指標 s olympic s指向的是字串 olympic 裡的第一個字元 o s可理解為字串 第二句若改成指向字元類指標的指標就可以正確賦值了,如下 char s s 這樣的s可理解為指向字串的指標,也可以理解為二維陣列 可以這麼理解第二句 char s 定義一個字元型指...