指標經常遇到的問題

2021-08-15 03:22:02 字數 1839 閱讀 8992

1、指標的型別:

int  *ptr;   //指標型別是int*

char *ptr;   //指標型別是char*

int  **ptr;   //指標型別是int**

int  (*ptr)[3];  //指標型別是int(*)[3]

int  *(*ptr)[4];   //指標型別是int*(*)[4]

2、為什麼不能把區域性變數的位址作為函式返回值返回?

答:當函式呼叫結束後,被呼叫函式的記憶體空間就會被釋放,記憶體空間的使用權又會回到系統手中。雖然區域性變數的位址被傳回了主函式,但是由於這個位址所在的記憶體空間的使用權已經不在程式手中,所以此時取到的位址是乙個不合法的位址,因此,不能把區域性變數的位址作為函式返回值返回。

3、空指標如何使用?

(1)用空指標終止對遞迴資料結構的間接使用。

(2)用空指標進行函式呼叫失敗時的返回值。

(3)用空指標作警戒值。

int a=12; int  b=10;

judge(&a,&b);     //呼叫函式judge ,實參是變數a和b的位址,假設,a的位址是0x1234,b的位址是0x4567,那麼形參m ,n的                                   位址也會是0x123和0x456嗎??

void judge(int* m,int* n)          //定義了函式judge

在這裡,只是把a和b的位址當成值傳遞給了m,n,所以這裡0x1234和0x4567只是m和n的值,而m,n的位址就由系統隨機分配,具體是什麼,我們也不知道。

5、null總是被定義為0嗎?

null不是定義為0,就是被定義為「(void *)0」,這兩種值幾乎是相同的。當程式中需要乙個指標時(儘管編譯程式並不是總能只是什麼時候需要乙個指標),乙個純粹的0或者乙個void指標都能自動被轉換成所需要的任何型別的指標。

6、假設char* a=「i am a girl'; 為什麼拿到這個字串的首位址就等於拿到了這個字串??

答:因為在這裡,記憶體空間是順序排列的,當拿到第乙個位址的時候,就可以順序的往下找,對於字串來說,只要找到結束符『\0』的時候就等於拿到這個字串。

7、假設int i=20; i的位址為0x1234;什麼情況下i 和這個位址的聯絡會被斬斷,下乙個變數的位址還能被賦為0x1234嗎?

答:當函式呼叫結束,活著程式執行完畢後,這個記憶體空間就會被釋放,這時i和這個位址的聯絡就會被斬斷,當宣告了下乙個變數時,系統又會為這個變數分配乙個記憶體空間,但是不能確定這個變數是否一定能拿到0x1234這個位址,因為分配的記憶體空間是隨機的,也就意味著這個空間的位址是不確定的。

8、右左法則是什麼?

右左法則能讓你準確理解所有的宣告。從變數名開始閱讀宣告,向右看然後向左看。當碰到乙個括號時就調轉閱讀的方向,括號內的所有內容都分析完畢就跳出括號的範圍。這樣繼續,直到整個宣告都被分析完畢。

9、.函式引數如何傳遞?

(1)值傳遞:把實參的值傳遞給形參。

(2)指標傳遞:指標傳遞時形參值的改變並不能改變實參的值,但形參所指向內容值的改變卻能改變實參,這一點非常的重要,是指標傳遞的精華所在。

10、常用的字串函式:

strlen(char *str);    //獲取字串長度,字串結束符null不計算在內    strcat(char *str,char *ptr);    //將ptr接到str後面

strnact(char *str,char *ptr,2);   //將ptr的前兩個字元新增到str後

strcpy(char *str,char *ptr);   //將ptr複製到str所指定的位置,包含null   strncpy(char *str,char *ptr,nu); //將ptr的前nu個字元複製到str所指定的位置

前端經常遇到的的問題

div input type text list itemlist name itemid value datalist id itemlist option item1 option option item2 option datalist div select option value 1 請選...

部署IIS經常遇到的問題

我的配置檔案中是這樣寫的,發布在iis上出現了 無法識別的屬性 targetframework 請注意屬性名稱區分大小寫。首先要確定的是大小寫不可能出錯,如果出錯的話 vs 一定會幫我們檢查出來的,那麼就可能是版本不相容的問題了 一般如果你的iis 是framework2.0的話,就非常的有可能 這...

經常遇到的一些問題

經常遇到的一些問題 css js 1.開啟視窗 welcome 等效於js window.location.href 在同當前視窗中開啟視窗 welcome 等效於js window.open url 在另外新建視窗中開啟視窗 2.一開啟頁面就載入的函式 document ready functio...