c 基礎 const 修改

2021-06-17 23:40:42 字數 729 閱讀 4771

int main()

{ const double minvalue = 9.6; ///定義常量double

const double *ptr = &minvalue; ///將minvlaue位址賦予ptr

cout<< *ptr<

1.常量在程式中任何改變這個值的企圖都將導致編譯錯誤因此它被稱為是唯讀的read- only  ---------理論是無法修改其值

2.我們可以定義乙個const 指標指向乙個const 或乙個非const 物件 ------------特殊方法修改其值

例如 int errnumb = 0;

int *const curerr = &errnumb;

curerr 是指向乙個非const 物件的const 指標,我們可以從右拄左把定義讀作curerr是乙個指向int 型別物件的const 指標,這意味著不能賦給curerr 其他的位址值但可以

修改curerr 指向的值

3.const 物件的const 指標的定義就是將前面兩種定義結合起來----------------解決2存在問題方案

例如 const double pi = 3.14159;

const double *const pi_ptr = π

在這種情況下pi_ptr 指向的物件的值以及它的位址本身都不能被改變 我們可以從右往左將定義讀作pi_ptr 是指向被定義為const 的double型別物件的const 指標

c 基礎 間接修改const的坑

在c 中。通過指標間接修改全域性變數直接在編譯器階段就無法通過,因為全域性變數在常量區中,收到保護。而修改區域性變數的時候,編譯器可以通過,但是在發生修改的時候,編譯器會開闢一塊新的記憶體,建立乙個新的 temp賦值給 p,而a的值不會發生改動。所有對const常量取位址的操作都是取到了編譯器新開的...

c 基礎 引用 const

一些c 對於c語言的加強 1 int fun 在c語言中表示返回值int型的函式,括號裡的引數是任意的 但是在c 中也表示int 型返回值的函式,但是括號裡是沒有引數的相當於int fun void 也就是說在c 中他強調的是型別,所有程式的所有元素都必須指明型別 2 c 中的表示式的返回值是變數本...

C 基礎之const基礎用法

前世 下列 for 迴圈語句有兩個問題,兩個都和使用 512 作為迴圈上界有關。for int index 0 index 512 index 第乙個問題是程式的可讀性。比較 index 與 512 有什麼意思呢?迴圈在做什麼呢?也就是說 512 作用何在?第二個問題是程式的可維護性。假設這個程式非...