廣告贊助

此篇分享的是難度較高的 pointer 考題。

 

pointer類型的題目在C語言的面試考題中幾乎是必考!

而之所以會成為主管最愛考題原因有三:

1. 題目簡單明瞭,不會題意不清。

2. 鑑別度高,對於少寫程式的人來說相對陌生。

3. 變化性高,可隨意變換題目,不易重複。

 

以下為真實面試考題分享 :

 

題目

請寫出將會印出的兩行字串


答案

Ans: 此題須同時計算*p值與s字串,

第一行字串為 : 0113234

第二行字串為 : 0123456


解析

首先, *p = s 所代表的含意為 pointer p 指向字串s的第一個位址,

字串s第一個位址值為0,而接下來一連串的運算可分成四類:

*p++   =   *(p++) 先取值 後指標下移
*++p   =   *(++p) 先指標下移 後取值
++*p   =   ++(*p) 先值+1 後取值
(*p)++ 先取值 後值+1

 

雖然看似複雜,但仔細觀察還是可看出規則,

*p = 取值

  p = 取指標位址

++在前  =  先加1再取值

++在後  =  先取值後加1

 

多練習幾遍,以後看到此類型的題目肯定能輕鬆取分。

 

延升閱讀

科技業筆試 常考觀念題  

1. 指標  2. 資料型態 3. 位元運算

國外面試考什麼

LeetCode 練習 - Two Sum 解析 (Easy)    

LeetCode 練習 - Add Two Numbers 解析 (Medium)

 

文章標籤
創作者介紹
創作者 C 的頭像
C

DummyH的部落格

C 發表在 痞客邦 留言(2) 人氣()


留言列表 (2)

發表留言
  • 悄悄話
  • 悄悄話