今天在複習<> 章節7.3的時候想到以前做的乙個題,const和指標運算子*的若干種組合的合法性和意義問題,有點混淆,所以寫了乙個測試**來驗證一下,簡單明瞭,一目了然。如果有什麼遺漏的話歡迎指出。
首先是在ubuntu14.04.1下用gcc 4.8.4編譯執行的結果,編譯器報錯資訊都附加在對應語句後面的注釋裡
/*
* note : test for the combinations of const and *
* last edit : 2016-2-27
*/#include int main()
下面是visual studio 2013下用vs自帶的編譯器編譯執行的結果
/*
* note : test for the combinations of const and *
* last edit : 2016-2-27
*/#include "stdafx.h"
#include int main()
上面兩個環境下錯誤的原因基本一樣,總結如下
宣告原則:
const物件的理解:
const修飾的物件看其後先接哪個,指標變數名還是 *
C 中的const和指標組合
const int p或者int const p p 是指向常量的指標 const在 前,p指向的這個int變數對於 p來說是const的,即不能通過 p改變這個變數的值,但是變數本身可以隨便改變自己的值。另外也可以改變p的指向。例 int x 2 int y 3 const int p x p 4...
const和指標的組合
const 限定乙個物件為唯讀屬性 一級指標 1 const char p 限定p為唯讀。p值不能變。2 const char p 限定 p為唯讀。p的操作合法。3 char const p 限定p為唯讀。p的操作合法。4 const char const p 限定p和 p都為唯讀,不能改寫。二級指...
C 中const和指標的用法
名稱是根據const和指標順序的。實際作用是根據const修飾的型別,修飾型別的資料不能改變。按照上面的兩條原則,常量指標應該是const int p這樣的寫法,作用是 如下 int a 20 int b 30 常量指標 int 指標指向的值不能改變 指標的指向可以改變 const int p a ...