c語言中指標的15個問題

2021-06-19 01:20:34 字數 1789 閱讀 8681

c語言中指標的15個問題  

c語言中指標的15個問題 aqiaoboy  

1 指標的四要素 

1指標變數,表示乙個記憶體位址,通常為邏輯位址,與實際的實體地址還有乙個對映關係。 

2指標變數的長度,在win32下為四個位元組,   3指標指向的變數 

該記憶體位址空間下存放的變數,具體內容可能是各種型別的變數。   4 指標指向的變數的長度,以該記憶體位址空間開始的記憶體空間大小。 2 const,volatile修飾指標的含義 const    char *cpch=」hello』; 

表示指標指向的變數不可改變,但指標本身是可以改變的 char * const    pchc; 

指標指向的變數可以改變,但指標本身不可改變。  

const  char * const pchc; 兩者都不可變。 3 堆和棧上的指標 

指標所指向的這塊記憶體是在**分配的,在堆上稱為堆上的指標,在棧上為棧上的指標。 

在堆上的指標,可以儲存在全域性資料結構中,供不同函式使用訪問同一塊記憶體。 

在棧上的指標,在函式退出後,該記憶體即不可訪問。  

4 什麼是指標的釋放? 具體來說包括兩個概念。 

1 釋放該指標指向的記憶體,只有堆上的記憶體才需要我們手工釋放,棧上不需要。 

2 將該指標重定向為null。  

5 near,far型指標的區別? 

老式的ibm pc相容機才有這種區別,因為老式機不能完全支援32位指標, 所以才分為16位指標,(near),和32位指標(far) 從386開始沒有這種區別,都是32位指標。  

6 資料結構中的指標? 

其實就是指向一塊記憶體的位址,通過指標傳遞,可實現複雜的記憶體訪問。 7 函式指標? 

指向一塊函式的入口位址。  

8 指標作為函式的引數? 

比如指向乙個複雜資料結構的指標作為函式變數 

這種方法避免整個複雜資料型別記憶體的壓棧出棧操作,提高效率。 注意:指標本身不可變,但指標指向的資料結構可以改變。  

9 指向指標的指標? 

指標指向的變數是乙個指標,即具體內容為乙個指標的值,是乙個位址。 此時指標指向的變數長度也是4位。  

10 指標與位址的區別? 區別: 

1指標意味著已經有乙個指標變數存在,他的值是乙個位址,指標變數本身也存放在乙個長度為四個位元組的位址當中,而位址概念本身並不代表有任何變數存在。 2 指標的值,如果沒有限制,通常是可以變化的,也可以指向另外乙個位址。    位址表示記憶體空間的乙個位置點,他是用來賦給指標的,位址本身是沒有大小概念,指標指向變數的大小,取決於位址後面存放的變數型別。  

11 指標與陣列名的關係? 

其值都是乙個位址,但前者是可以移動的,後者是不可變的。  

12 怎樣防止指標的越界使用問題? 

必須讓指標指向乙個有效的記憶體位址, 1 防止陣列越界 

2 防止向一塊記憶體中拷貝過多的內容 3 防止使用空指標 

4 防止改變const修改的指標 

5 防止改變指向靜態儲存區的內容 6 防止兩次釋放乙個指標 7 防止使用野指標。   

13 指標的型別轉換? 

指標轉換通常是指標型別和void * 型別之前進行強制轉換,從而與期望或返回void指標的函式進行正確的交接。   

14 什麼是指標退化? 

如果用乙個陣列作為函式入參 比如 

void fun(char a[100])    

像這樣定義也不能保證檢查傳進來的引數對不對 [code] 

int a(char s[100])   

main()  

[/code]  

編譯時使用dev-c++沒有問題

C語言中指標的15個問題

c語言中指標的15個問題 aqiaoboy 1 指標的四要素 1指標變數,表示乙個記憶體位址,通常為邏輯位址,與實際的實體地址還有乙個對映關係。2指標變數的長度,在win32下為四個位元組,3指標指向的變數 該記憶體位址空間下存放的變數,具體內容可能是各種型別的變數。4 指標指向的變數的長度,以該記...

C語言中指標大全

1.使用二維字串儲存字串的時候會出現儲存浪費的情況,使用指標陣列儲存則不會 char s for i 0 ifor i 0 i 3 i 2.指標陣列作為函式引數傳遞多個字串給另乙個函式。指標陣列是乙個陣列,只是裡面存放了指標 void str sort char s,int n n代表指標陣列的長度...

C語言中指標的操作

c語言中指標操作主要有以下幾種 指標減去乙個整數 模擬上面的4。指標自減 模擬上面的5.求差值 通常對指向乙個陣列兩個不同元素的指標求差值,代表兩個元素位置的差值。示例 include int main void int ptr1,ptr2,ptr3 ptr1 urn ptr2 urn 2 prin...