關於const的乙個有趣的現象

2022-08-17 04:06:13 字數 421 閱讀 4512

先上**

#include using

namespace

std;

intmain()

輸出0 10 並且兩個&c跟d是同乙個值

懷疑是編譯優化把輸出改成字面常量了,但是用gcc編譯時開o0和-e發現跟猜想並不一樣,確實是輸出變數。

1 既然編譯器允許去掉const修飾符,那通過指標或者引用修改const變數會發生什麼?

2 如果是採取了修改const變數新開闢一塊兒記憶體,那為什麼位址一樣?如果是在原來的位址修改了變數的值,為什麼輸出c和*d不是同乙個值?

這種現象就是 常量摺疊。。。

所以大概const修飾符就是在語義層面的,執行時某塊記憶體,某個資料沒有const的修飾,只是在編譯階段,會對變數進行檢查。

乙個 快取並使用Out 引數的 有趣現象

現象描述 我有乙個 快取使用類,其有乙個方法,從快取中獲取乙個 dictionary物件,用out 的方式,將其傳出 為物件b 但有趣的 是 當b裡有add key,value 的行為後,快取中的dictionary物件 也會有相應的鍵值對 同時 當 b裡有clear 的行為後 快取中的dictio...

乙個有趣的函式 關於時間

最近做專案中要做乙個限制每天領獎的次數,以及每週的領獎的次數。如何判斷上次記錄的時間是否和今天是同一天呢?可能大家一開始的思路就是過24小時不就一天了嗎?呵呵,確實不錯,可是現在區分的是 是否是相同的一天。這就清晰了,只要知道今天是今年的多少天和上次記錄的時間一比較就可以了唄。我把 貼一下,由於是在...

關於乙個有趣遞增的心得

首先申明這是乙個藍點工作室的任務,題目是這樣的 要求編寫乙個程式,實現從鍵盤輸入n 1 n 9 然後輸出一下內容 1 12 22 24 3 33 333 369 n nn nnn n n 當我一開始看見這道題時,第一反應時挺簡單的,迴圈就可以完成,但是仔細一想,不僅要完成迴圈n項的遞增,數字也要疊加...