天天看點

C語言const在不同位置的作用,const的用法及它在C語言和C++中的不同

(1)可以定義const常量。

(2)Const可以修飾函數的參數和傳回值,甚至定義體。被const修飾的東西都受到強制保護。

(3)Const修飾成員函數時,用于成員函數前面,則傳回值不能作為左值。用在後面,則該成員函數的資料成員不能改變。

(4)Const修飾資料成員時,必須使用冒号文法。

在C程式中,const主要有定義變量、修飾函數參數、修飾函數傳回值。

在C++程式中,還可以修飾函數的定義體,定義類中成員函數為恒态函數,既不改變類中的資料成員。

在數組定義維數N時,隻能用const和define來定義N:

如:

const int N =10;

char a[N];

#define N 10

char a[10];

此時N作為數組的維數,隻能作為常量。Int N= 10; char a[N];是錯誤的,因為此時N為變量。

●const與#define的不同?

(1)const常量有資料類型,宏常量沒有。

(2)編譯器對const可以進行類型安全性檢查,define隻能進行字元替換。

(3)有些內建化調試工具可以對const常量進行調試,但不能對宏常量進行調試。

在C++程式中隻使用const常量而不使用宏常量。

(4)const修飾成員變量時,成員變量的初始化必須在構造函數的初始化清單(冒号文法)中進行。

C語言和C++中的字元串(string)

知識内容: 1.C\C++字元串簡述 2.C字元串相關操作 3.C++ string類相關操作 一.C\C++字元串簡述 1.C語言字元串 C語言字元串是字元的數組.單位元組字元串順序存放各個字元串,并 ...

C語言和C++中動态申請記憶體

在C語言和C++的動态記憶體的使用方法是不同的,在C語言中要使用動态記憶體要包含一個頭檔案即 #include 或者是#include  ...

淺談C語言和C++中“類”的差別

在C語言中,沒有“類”的概念,但是可以由結構體struct構造出我們所需要的資料類型,struct可以組合不同的資料類型,可以看作是C語言中的“類”. 下面是C語言中的結構體的執行個體. #include ...

淺談c語言和c++中struct的差別

今天做二叉樹的時候,發現利用結構體有點亂,不知道怎麼回事,我之前知道c語言中聲明一個結構體變量時需要通過 struct 結構體名 變量名,而在c++中,可以不要struct,由于可以利用typedef ...

C/C++語言中const的用法

1. const 在C和C++中的差別     C++中的const正常情況下是看成編譯期的常量,編譯器并不為const配置設定空間,隻是在編譯的時候将期值儲存在名字表中,并在适當的時候折合在代碼中. 所 ...

const的用法,特别是用在函數前面與後面的差別!

const的用法,特别是用在函數後面 在普通的非 const成員函數中,this的類型是一個指向類類型的 const指針.可以改變this所指向的值,但不能改變 this所儲存的位址. 在 const ...

ECMAScript 6 入門之let和const的用法

1.let的用法 1. //檢視js的引入路徑是否正确 console.log("1:",1) 2. var a=1; let b=2; console.log("a:& ...

let 與 const 的用法

let 與 const 的用法 let 用來聲明變量,并且會在目前作用域形成 代碼塊 conts 用來聲明常量,所謂常量就是實體指針不可以更改的變量. 所謂代碼塊,最簡單的做法就是(這個 {} 就是一 ...

随機推薦

記錄PHP的超全局變量$_SERVER

$_SERVER是PHP中十分實用的超全局變量,在開發可移植的網站的時候會變得很有用. 下面我記錄一下我自己常用到的幾個變量 1.$_SERVER['SERVER_NAME']:記錄了網站的域名. 2 ...

Uva 11754 Code Feat

題意概述: 有一個正整數$N$滿足$C$個條件,每個條件都形如“它除以$X$的餘數在集合$\{Y_1, Y_2, ..., Y_k\}$中”,所有條件中的$X$兩兩互質, 你的任務是找出最小的S個解. ...

windows下回車與換行符

windows下回車與換行符 從鍵盤輸入的資料一般是ASCII碼,也就是文本檔案,在送到計算機記憶體時,回車和換行符轉換成一個換行符(也就是說回車和換行符在windows文本中是兩個字元),再從記憶體中以 ...

vijos p1193 掃雷

描述 相信大家都玩過掃雷的遊戲.那是在一個n*n的矩陣裡面有一些雷,要你根據一些資訊找出雷來.萬聖節到了,“餘”任過流行起了一種簡單的掃雷遊戲,這個遊戲規則和掃雷一樣,如果某個格子沒有雷,那麼它裡 ...

轉:web_submit_data和web_submit_form的差别

在LoadRunner中有兩個常用函數:Web_submit_form和Web_submit_data,在群裡有人問這兩個函數有什麼差別.為什麼會有兩個不同卻功能相似的函數.差別在哪裡. 首先,從工具 ...

AOP 面向切面的程式設計

一.面向切面的程式設計需求的産生 代碼混亂:越來越多的非業務需求(日志和驗證等)加入後,原有的業務方法急劇膨脹.每個方法在處理核心邏輯的同時還必須兼顧其他多個關注點. 代碼分散: 以日志需求為例,隻是為了 ...

[SF] Symfony 元件 BrowserKit 原理

直接看下面的注釋中針對每一個檔案的作用說明. <?php /** * BrowserKit - Make internal requests to your application. * * I ...

jQuery源碼中的&OpenCurlyDoubleQuote;new jQuery&period;fn&period;init&lpar;&rpar;”什麼意思?

所有文章搬運自我的個人首頁:sheilasun.me 引子 最近打算試試看看jQuery的源碼,剛開個頭就卡住了.無論如何都了解不了jQuery源碼入口部分中的 return new jQuery.f ...

PR合并回寫

) as LGORT ,'SAPRFC' as ERNAM,out_pr.due_datetime,out_pr.so_id,out_pr.so_lineid,out_pr.sobsl from V_ ...