int i = 0;double dp = &i; //int型別的值不能初始化double*型別的實體。
int ip = i; //int型別的值不能初始化int型別的實體。
int *p = &i; //正確。
if(p) //如果p不為空則為真首先要確定指標是否合法,才能判斷它指的物件是不是合法的。if(*p) //如果 *p的值非0則為真
int i = 42;void *p = &i; //void指標可以指向任何型別的物件。
long lp = &i; //int型別的值不能初始化long*型別的實體。
int * ip, i, &r = i; //ip為int*型別, i為int型, r是i的引用。int i, *ip = 0; //i為int型, ip為空指標。
int * ip, ip2; //ip為int*型別, ip2為int型。
const int buf; //不合法,buf必須初始化。int cnt = 0; //合法。
const int sz = cnt; //合法。
++cnt; ++sz; //不合法,const物件不能改變。
int i = -1, &r = 0; //不合法,r必須引用乙個物件。int *const p2 = &i2; //合法。
const int i = -1, &r = 0; //合法。
const int *const p3 = &i2; //合法。
const int *p1 = &i2; //合法。
const int &const r2; //不合法,r2必須引用乙個物件,引用沒有頂層const。
const int i2 = i, &r = i; //合法。
int i, *const cp; //不合法,const指標需要初始化。int *p1, *const p2; //不合法,const指標需要初始化。
const int ic, &r = ic; //不合法,ic需要初始化。
const int *const p3; //不合法,const指標需要初始化。
const int *p; //合法。
i = ic; //合法,常量賦值給普通變數。p1 = p3; //不合法,p3是const指標,不能賦值給普通指標。
p1 = //不合法,普通指標不能指向常量。
p3 = //合法,p3是常量指標並且指向常量。
p2 = p1; //合法,可以將普通指標賦值給常量指標。
ic = *p3; //合法,p3解引用後是const int型,然後賦值給ic。
v2是頂層const,p2是底層const,p3靠右的是底層const靠左的是頂層const,r2是底層const。const
int v2 = 0;
int v1 = v2;
int *p1 = &v1, &r1 = v1;
const
int *p2 = &v2, *const p3 = &i, &r2 = v2;
c primer第二章習題
習題2.1 int,long和short型別之間有什麼差別?答 short,int和long型別都表示整型值,儲存空間的大小不同.一般,short型別為半個機器字長,int型別為乙個機器字長,而long型別為乙個或兩個機器字長 在32位機器中int型別和long型別通常字長是相同的 用sizeof可...
C primer 第二章習題
習題 2.1 int long 和 short 型別之間有什麼差別?解答 它們的最小儲存空間不同,分別為 16 位 32 位和 16 位 對於16位機 一般而言,short 類 型為半個機器字 word 長,int 型別為乙個機器字長,而 long 型別為乙個或 兩個機器字長 在 32 位機器中,i...
第二章習題
一 linux對於硬體的要求是什麼?是否一定要有很高的配置才能安裝linux?答 不是一定要有很高的配置才能安裝linux 因為linux系統是非常穩定和高效的,對電腦硬體配置要求很低,這正是linux系統的優勢所在,不同的linux系統版本要求略有不同,但是大體上在同乙個配置等級內,而且當下主流的...