1. 程式人生 > >const 用法全面解析

const 用法全面解析

下面對const用法進行一下總結:

1. const 修飾的是 只讀變數, 但還是變數,所以不能陣列的長度引數。(陣列長度必須是常量)

2. 編譯器通常不為const只讀變數分配儲存空間,而是儲存在符號表中,這樣會更快的進行操作。

3 const 修飾一般變數的時候,它可以用在型別說明符前,也可以用在型別說明符後。如:

int const i = 2;
const int i = 2;

4.修飾陣列
int const a[5] = {1,2,3,4,5};
const int a[5] = {1,2,3,4,5};

5.修飾指標
const int *p; //p可變,p指向的物件不可變
int const *p; //p可變,p指向的物件不可變
int *const p;//p不可變,p指向的物件可變
const int *const p;//指標p和p指向的物件都不可變

下面是記憶和理解的方法:

先忽略型別名,const離哪一個近就修飾誰(指的是const後面的)。

6.修飾函式的引數和函式的返回值

7.const的值並不是不可以修改的, const修飾的變數n,指的是不能通過n來改變它的值,但是我們可以通過指標來修改。如:

const int a = 3;
int* b = (int*) &a;  //要通過強制型別轉換,否則報錯

printf("a = %d, *b = %d\n", a, *b);
*b = 5;
printf("a = %d, *b = %d\n", a, *b);


相關推薦

const 用法全面解析

下面對const用法進行一下總結: 1. const 修飾的是 只讀變數, 但還是變數,所以不能陣列的長度引數。(陣列長度必須是常量) 2. 編譯器通常不為const只讀變數分配儲存空間,而是儲存在符號表中,這樣會更快的進行操作。 3 const 修飾一般變數的時候,它可以

Android之ConstraintLayout用法全面解析

在Android開發中我們在寫佈局時候經常會使用到佈局的巢狀,比如常見的Android佈局FrameLayout LinearLayout RelativeLayout等佈局的相互巢狀,而且在寫xml佈局時候對佈局視覺化的操作不是很到位(很雞肋) 而ConstarintL

const用法全面介紹

1.     const常量,如const int max = 100; 優點:const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤。2.      const

全面解析rhel6-防火墻iptables -- 基本用法

tro 數字 drop 匹配 同時 分類 routing rop cmp 規則鏈解析鏈的用途:存放一條條防火墻規則鏈的分類依據:處理數據包的不同時機默認包括5種規則鏈 INPUT:處理入站數據包OUTPUT:處理出戰數據包FORWARD:處理轉發的數據包POSTROUTI

C語言中const用法解析

const修飾的變數儲存位置,和不用const修飾的沒區別!!!!!! 關鍵字const用來定義常量,如果一個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,C語言中不是有#define嗎,幹嘛還要用const呢,我想事物的存在一定有它

Android圖片載入庫:最全面解析Glide用法

前言 上文已經對當今Android主流的圖片載入庫進行了全面介紹 & 對比 如果你還沒閱讀,我建議你先移步這裡進行檢視 今天我們來學習一下其中一個Android主流的圖片載入庫的使用 - Glide 目錄 1. 簡

javaScript之this全面解析(2)

mode undefined fin 全局對象 bar def rip 布爾 defined 在理解this的綁定過程之前,我們先來理解調用位置(不是聲明位置) ,最重要的是要分析調用棧(就是為了到達當前執行位置所調用的所有函數)。 我們關心的調用位置就在當前正在執行的函數

_IO, _IOR, _IOW, _IOWR 宏的用法解析

內存 返回值 bits 分辨 上傳 正是 ron 了解 asm 今天在寫字符驅動驗證程序的時候要用到ioctl函數,其中有一個cmd參數,搞了半天也不了解是什麽意思,那個cmd還有什麽命令碼了什麽的,還好google下,覺得這篇文章寫的不錯,就轉來看看:在驅動程序裏, io

c/c++中const用法總結

沒有 pan 分配 值類型 變量初始化 _id 多少 部分 參數 1、修飾常量時:   const int temp1; //temp1為常量,不可變   int const temp2; //temp2為常量,不可變 2、修飾指針時:   主要看const在*的前後,

[SVG實戰]餅圖全面解析

rotate code 處理 半徑 數學 偏移 空格 使用 clas 之前寫過一篇CSS3的餅圖全面解析,這次給大家分享一個SVG實現餅圖的全面解析。 既然是繪制餅圖,那麽顯然需要繪制圓形。 // 一個簡單的圓形,具有一定寬度的描邊。 <svg width=

Memcached全面解析並使用zabbix進行監控

解剖 memcache 原理 Memcached是什麽? Memcached是一個分布式內存緩存服務器,用於緩存數據庫查詢結果,減少數據庫的訪問次數,提高動態web頁面的速度及擴展性。Memcached的特征 a.協議簡單,Memcached使用簡單的文本行協議 b.基於libevent的事件處理

Redis的配置文件redis.conf全面解析

requested diff glog flush double room raise pla wait # Redis configuration file example. # # Note that in order to read the configuratio

this全面解析--JavaScript中的

函數的調用 fun 全局 是否 參數 沒有 ... obj 引用 上一章我們排除了一些對this的錯誤認識和知道了this是在調用函數時被綁定的,完全取決於函數的調用位置。先介紹兩個概念:調用位置和調用棧。 調用棧:就是為了到達當前執行位置所調用的所有函數。 調用位置:在當

C#中const用法詳解

htm 鏈接 服務器 span img body 用法詳解 -s 設計 本文實例講述了C#中const用法。分享給大家供大家參考。具體用法分析如下: const是一個c語言的關鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性,另外,

C++ const用法小結 (歡迎大家拍磚)

固定 ant oid 幹什麽 pause 參數傳遞 clas 自定義類型 期望 C++const 關鍵字小結 const 是constant的縮寫,本意是不變的,不易改變的意思。 const 在C++中是用來修飾內置類型變量,自定義對象,成員函數,返回值,函數

全面解析Activity的生命周期

body hub code uil style androidm ren lin lease 歡迎Follow我的GitHub, 關註我的CSDN. 在An

Android Touch事件傳遞機制全面解析(從WMS到View樹)

了解 分支 per seve from 這一 params 雞湯 dcl 轉眼間近一年沒更新博客了,工作一忙起來。非常難有時間來寫博客了,因為如今也在從事Andro

【iMooc】全面解析java註解

test sql語句 字符 con public insert OS 直接 變量 在慕課上學習了一個關於java註解的課程,下面是筆記以及一些源碼。 Annotation——註解 1.JDK中的註解 JDK中包括下面三種註解: @Override:標記註解(marker a

Android:全面解析 熟悉而陌生 的Application類使用

screen 存儲 程序啟動 兩個 com 完全 @override mat 例子 前言 Applicaiton類在 Android開發中非常常見,可是你真的了解Applicaiton類嗎? 本文將全面解析Applicaiton類,包括特點、方法介紹、應用場景和具體使用,

頂級數據庫行會Percona阿裏全面解析下一代雲數據庫技術

數據庫摘要: 幾年前,數據庫管理系統的企業市場似乎還如同銅墻鐵壁,除了老牌廠商外,其他廠商休想打進來。隨著移動互聯、物聯網技術的發展,多終端應用的時代悄然而至。結構化與非結構化數據的爆發,推動人類社會進入大數據時代。海量數據瞬間湧來,讓企業傳統數據庫系統不堪重負,針對海量數據的收集、存儲與分析,原始的封閉式架