C++與C中const的比較以及const和define的比較

C++與C中const的比較:

C語言中 const修飾的變量是一個 常變量,本質還是變量,有自己的地址空間C++編譯器對const常量的處理
當碰見常量聲明時,在符號表中放入常量  ==> 問題:那又如何解釋取地址編譯過程中若發現對const使用了extern或者&操作符,則給對應的常量分配存儲空間(兼容C)
但是編譯過程中若發現使用常量則直接以符號表中的值替換,即使給該常量分配了空間,也并不使用里面的值#include <stdio.h>// 建議用 const 常量 代替宏常量 
// define  宏 在預編譯的時候進行處理  const 是在編譯的時候進行處理的
// 宏做簡單替換,不會進行類型檢查,作用域的檢查
void func4_1()
{
// 宏的作用域從定義的那個位置開始,到文件結束都可見,可以使用
#define   A  100// const 常量的作用 在當前的 {}之內const int b = 20;printf ("%d\n", A);printf ("b = %d\n", b);// 撤銷宏定義,如果不撤銷,宏可以一直使用
#undef A
}int main4_2()
{//printf ("b = %d\n", b);// func4_1();// printf ("%d\n", A);return 0;
}int main4_1()
{   // C++中用 const 來定義常量const int a = 10;// a = 20;// C++中常量放在一個常量表中// 當編譯器檢測到要const常量進行取地址操作,它會為 a 分配內存// 但是這個內存并不會被 a 使用int *p = (int *)&a;*p = 100;printf ("&a = %p, p = %p\n", &a, p);// const 常量 a 并不會使用分配它的空間,使用 a 的時候,用常量表中的值進行替換printf ("a = %d, *p = %d\n", a, *p);return 0;
}

這里寫圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448429.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448429.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448429.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國古典十大悲劇

一.《竇娥冤》  《竇娥冤》——元關漢卿 山陰書生竇天章因無力償還蔡婆的高利貸&#xff0c;把七歲的女兒竇娥送給蔡婆當童養媳來抵債。竇娥長大后與蔡婆兒子成婚&#xff0c;婚后兩年蔡子病死。后來蔡婆向賽盧醫索債&#xff0c;被賽盧醫騙至郊外謀害&#xff0c;為流氓張驢…

解決: Elements in iteration expect to have ‘v-bind:key‘ directives

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯&#xff1a; Elements in iteration expect to have v-bind:key directives 原本寫法&#xff1a; <li v-for"site in s…

回來太多事需要處理

出差回來&#xff0c;發現太多事需要處理現在每個項目都在Delay。且沒有一個人是主動匯報項目的。這是非常不正常的現象。感覺有點累轉載于:https://www.cnblogs.com/boriscao/archive/2005/09/03/229368.html

不該失去的,一塊錢也不放棄

很多人都覺得&#xff0c;有錢人既然財力雄厚&#xff0c;花錢時必定毫不手軟。然而&#xff0c;觀察成功的CEO&#xff0c;你會發現&#xff0c;他們多數人花錢也花得小心&#xff0c;對于什么該花、值得花&#xff0c;算得十分精細。 華人首富、香港長江實業與和記黃埔董事局…

C++之引用

普通引用和常引用 1. 變量名的回顧 變量名實質上是一段連續存儲空間的別名&#xff0c;是一個標號(門牌號) 程序中通過變量來申請并命名內存空間 通過變量的名字可以使用存儲空間 問題&#xff1a;一段連續的內存空間是否只能有一個別名嗎&#xff1f; 2. C引用的概念 引…

Vue.js 極簡小例:數值計算、千米換算為米、九九乘法表、循環

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 代碼&#xff1a; <template><div id"app"><!-- 千米和米換算 --><div id "computed_props&quo…

shiro框架的學習

權限控制是shiro最核心的東西 Shiro權限聲明通常是使用以冒號分隔的表達式。一個權限表達式可以清晰的指定資源類型&#xff0c;允許的操作&#xff0c;可訪問的數據。同時&#xff0c;Shiro權限表達式支持簡單的通配符&#xff0c;可以更加靈活的進行權限設置。 下面以實例來說…

C++之內聯函數

內聯函數是一種特殊的函數&#xff0c;具有普通函數的特征&#xff08;參數檢查&#xff0c;返回類型等&#xff09; 內聯函數是對編譯器的一種請求&#xff0c;因此編譯器可能拒絕這種請求 內聯函數由 編譯器處理&#xff0c;直接將編譯后的函數體插入調用的地方 宏代碼片段…

媽媽培養天才的13絕招

作父母的&#xff0c;都希望自己的寶寶可以變得聰明、懂事&#xff0c;所以想盡辦法去讓寶寶上早教班、做早期智力開發……當然&#xff0c;這些做法對于開發寶寶智力能夠起到一定的幫助。但是&#xff0c;千萬別忽視您所能給予寶寶的家庭教育。    近日&#xff0c;日本一位…

Vue.js 極簡小例: 4 種方式樣式綁定、style 的多種方式實現

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 代碼&#xff1a; <template><div id"app"><!-- JSON方式使用樣式 --><div v-bind:style"{ colo…

C++之默認參數

一、什么是默認參數 C中可以在函數聲明時為參數提供一個默認值&#xff0c; 當函數調用時沒有指定這個參數的值&#xff0c;編譯器會自動用默認值代替 二、默認參數規則 只有參數列表后面部分的參數才可以提供默認參數值 一旦在一個函數調用中開始使用默認參數值&#xff…

50 Python - 裝飾器 類定義裝飾器

04 類定義裝飾器 上節通過函數定義裝飾器&#xff0c;本節通過類定義裝飾器 001 定義類裝飾器 定義一個類&#xff0c;類里面兩個函數&#xff0c;一個構造函數init()&#xff0c;一個調用函數call() 構造函數init時候&#xff0c;傳遞一個函數func()進來 調用函數call()&#…

C++之過載函數

過載函數的定義&#xff1a; 用同一個函數名定義不同的函數 當函數名和不同的參數搭配時函數的含義不同 過載函數的判斷標準&#xff1a; 函數重載至少滿足下面的一個條件&#xff1a; 參數個數不同 參數類型不同 參數順序不同 函數返回值不是函數重載的判斷標準 調用…

人民幣貶值會讓八類人損失慘重!有你嗎?

截至20日&#xff0c;人民幣本周對美元累計貶值1.24%&#xff0c;年初以來不到三個月時間累計貶值2.79%。分析人士表示&#xff0c;人民幣短期內仍有較強下跌壓力。本輪人民幣急貶預計將對幾類人群收入造成嚴重沖擊。 本周以來&#xff0c;人民幣對美元即期匯價持續單邊下跌。數…

Vue.js 極簡小例: 點擊事件

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 代碼&#xff1a; <template><div> <!-- jy_mothed 是在 js 中自定義的方法 --><button v-on:click"jy_mot…

從最大似然估計到最小二乘法

這一部分內容和吳恩達老師的CS229前面的部分基本一致&#xff0c;不過那是很久之前看的了&#xff0c;我盡可能寫的像吳恩達老師那樣思路縝密。 1.假設 之前我們了解過最大似然估計就是最大化似然函數$$L(\theta) \sum log(p(x_{i}|\theta))$$ 來確定參數\(\theta\)&#xff0…

C++之類

A&#xff09;封裝&#xff0c;是面向對象程序設計最基本的特性。把數據&#xff08;屬性&#xff09;和函數&#xff08;操作&#xff09;合成一個整體&#xff0c;這在計算機世界中是用類與對象實現的。 B&#xff09;封裝&#xff0c;把客觀事物封裝成抽象的類&#xff0c;…

APU(美國AMD公司研發的加速處理器)

APU(Accelerated Processing Unit)中文名字叫加速處理器&#xff0c;是AMD“融聚未來”理念的產品&#xff0c;它第一次將中央處理器和獨顯核心做在一個晶片上&#xff0c;它同時具有高性能處理器和最新獨立顯卡的處理性能&#xff0c;支持DX11游戲和最新應用的“加速運算”&am…

根本不值得一提的乒乓球國手王浩

最近在看世界乒乓球錦標賽&#xff0c;關于王浩&#xff0c;很多人都說他的技術開創了一個時代&#xff0c;而事實是王浩沒有奪過任何世界性大的賽事的單打冠軍&#xff0c;我所說的世界性的賽事包括&#xff1a;世界乒乓球錦標賽,奧運會&#xff0c;世界杯&#xff0c;國際乒聯…

Vue.js 極簡小例:表單 (輸入框 input、文本域 textarea、單選框 radio、下拉菜單 selected、復選框 checkbox)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 代碼&#xff1a; <template> <div > <p>---------------------------------------------------------------------…