1.c語言中定義乙個符號常量可以用巨集定義實現
如# define min 5
巨集定義的缺陷是僅僅對常量做簡單的替換,有時會出現預料之外的結果,如# define min(x) x*x 將x設為(2+3)會得到13,而不是25
c++中可以用const修飾符來定義常量,const比巨集定義常量更加安全。
下面的例子展示了巨集定義和const的不同,
int x=5;
# define t x+x
# define m t-t
m的值將為10
而用const定義常量const int t=x+x;const m=t-t;
m的值將為0。
2.const 修飾符與指標
(1)指向常量的指標
const 《型別名》 *指標名;如:const int *t=&x;這種指標可以修改自己的指向,但它指向的內容*t不能修改。
(2)常指標
《型別名》 *const 《指標名》
int t=4;int *const p=&t;這種指標不能改變指向,但可以改變指向的內容
(3)指向常量的常指標
const 《型別名》 *const 《指標名》
int x=5;const int *const=&x;
這種指標不能改變指向,也不能改變指向的內容
下面是**:
# include using namespace std;
int main()
void show(){cout<<"not const"《常成員函式show()只能訪問而不能修改類中的變數(mutable變數除外)。
上面還講到了常物件const a a,常物件只能呼叫常成員函式。
(2)以下兩個函式不能實現過載:
f(char*)和f(const char *),因為如果把char *型別的變數傳入形參時,會有二義性的問題。
5.const用於函式的形參
int f(const int x) ;這個函式傳入的實參可以是const型別,也可以是非const型別,在函式f中,x的值不能被改變
int f(const int * x) ;形參為指向常量的指標,指向的內容不能改變
int f(int *const x);形參為常指標,指向不可變
int (const a& a);形參為a型別的引用,這樣可以避免複製、修改物件,從而有提高效率並且保護物件的作用。
6.const也可以用於修飾函式的返回值,此時函式的返回值可以相應地賦值給乙個const型別的變數。
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
c的操作符
最近自己看了一些c的操作符,便按照自己的想法總結如下 3.位操作符 4.賦值操作符 5.單目操作符 6.關係操作符 7.邏輯操作符 8.條件操作符 9.逗號表示式 10.下標引用,函式呼叫和結構成員 加 減 乘 除 取模 1 操作符只能對兩個整數進行操作,返回值是整除後的餘數 2 除 操作符外,其餘...
MySQL的and操作符和or操作符
有時對where的要篩選的列不止乙個時,那麼就用到了and操作符和or操作符,and操作符顧名思義的意思是 並且 而or操作符的意思是 或者 比如以部門員工表為例 查詢部門編號為d001並且入職日期為 1985 02 02的員工編號,那麼就要用到and操作符 那如果是查詢部門編號為d001或者入職日...