面試題 關於指標

2021-06-20 12:39:08 字數 401 閱讀 6230

【面試題】

下列c++程式會在哪一行崩潰?

struct s

;main()

【分析】int *p=&s.i時,一直到p[0]=4,p[1]=3的時候,p始終等於&s.i。

s.p=p 建立了如下的關係:

s.p存了p的值,也即&s.i,s.p[1]相當於*(&s.i+1),即s.i的位址加1.也就是s.p.  s.p[1]和s.p其實是同乙個地方,所以到s.p[1]=1的時候,就是在為s.p指標變數賦值,

即改變s.p指標的指向,s.p[0]會指向記憶體位址為1的地方,這顯然是乙個非法位址,不能寫入,

而最後的s.p[0]=2(相當於*s.p=2)是在向s.p指標指向的位址賦值,也就是試圖向位址1寫入數值,當然就出錯了。

面試題 指標

一 指標 1 利用指標實現兩數交換 include using namespace std void swap1 int p,int q void swap2 int p,int q void swap3 int p,int q void swap4 int p,int q void swap5 i...

面試題 指標 引用

返回目錄 問題 問 引用與指標有什麼區別?答 1.引用必須初始化,指標可以不用。2.引用初始化以後就不能被改變 即只能初始化一次,始終只指向指定的物件 而指標可以改變所指向的物件。3.不存在指向空值的引用,而指標可以指向乙個空值,即空指標。4.因為引用不能指向空值,這意味著使用引用之前不需要測試其合...

面試題 指標 void 通用指標

返回目錄 問題 問 函式中的void和指標中的void 有什麼區別?答 在函式中的void是表示無型別或無返回型別。void指標是通用指標,用來存放任何資料型別的引用。分析 void真正發揮的作用在於 1.對函式返回的限定。2.對函式引數的限定。函式返回值 函式名 引數1,引數2,引數3,int s...