C++面試題的總結

來源:互聯網
上載者:User

試題

解釋

 

那個題打錯字了,是:友元運演算法符,指的是以友元的形式重載運算子。

運算子多載兩種形式:成員函數和友元

若是成員函數 在重載時會有一個隱藏的參數 *this 所以答案是 C

若是友元的話就不存在預設參數了,答案是B

 

這個錯誤主要是沒看清找不必要的。函數主要是函數名 函數體 參數 傳回值等。

 

數組的定義和執行個體化考察:

本題定義了一個二維數組,分別是x[0]和x[1]兩個。

所以 x[1]就是4的地址 *x[1]表示4這個值了。

而且,在x[][]二維的定義中 的初始化方式 參考

http://see.xidian.edu.cn/cpp/biancheng/view/152.html

 

逸出字元的含義考察,\0,\t,\n等,就稱為逸出字元,因為後面的字元,都不是它本來的ASCII字元意思了。
但是 還有一個考察 那就是 字串以 \0為結束。所以,strlen 不會檢測\0以後的字元長度。st的大小就是數組的大小20

 

還是字串的問題:什麼是字元創長度呢?
我覺得這個答案估計是錯了,
當然,我用sizeof求 得到 4 用strlen得到 3
可以知道,sizeof  表示  char* 的長度  包括了 \0
而 strlen在\0也結束了 並且不包括它。
 

 這個題在面試中碰到過,下面說一下幾種情況:

int arr[3]

1. 指標數組

int *p[3]

這個定義了一個指標數組,元素是三個指標 分別指向 三個int型的地址。

等同於 int *(p[3])

2.指標

int (*p)[3]

定義了一個指標,指向一個有三個元素的數組的地址

如: p=&arr;

運算子優先順序的考察:

個人覺得,不好記,但是一般的盡量記住:比如賦值運算子、&&、|| 等的優先順序較低。

() 優先順序最高等。

http://en.cppreference.com/w/cpp/language/operator_precedence

這個裡面所有的優先順序對照表可以參考。

題中:!的優先順序比 &&要高,所以,!x為true 再來計算 &&後面的真值。另外,對於 &&和||還有編譯器最佳化計算的能力,比如&&之前的值為false 就沒有必要計算後面的值了,事實上,編譯器就是這樣工作的。

如下題

我們知道 ()的優先順序最高,= 賦值運算較低,比較運算較為高。所以,&&之前的值

為(m=a>b)

這個得好好講講了,首先是計算順序,>比賦值要高所以得到 m=0 。之後就是賦值後的傳回值了,

      int operator=(int) 返回賦值的那個值,為 0

所以整個運算式的值是 0 及不會執行後面的值了。

 

還有一個題,跟人覺得考得挺好的,這裡貼出來:

回複於: 2010-03-18 21:25:10
void GetMemory(char *p)
{
p=(char*)malloc(100);
}
p參數是複製原有指標的值,而不是原來的指標,所以即使p重新指向新的地址,但原來的指標指向的地址不變。
char *GetMemory(void)
{
char p[]="helloworld";
return p;
}
p是局部變數,在離開範圍後棧空間會被回收,結果不可預料。
void GetMemory2(char **p, int num)
{
*p = (char*)malloc(num);
}
p是指向傳入的指標的指標,*p為傳入的指標賦值,所以改變了傳入指標的值,也可以寫成這樣:
void GetMemory(char *&p)
{
p=(char*)malloc(100);
}
效果一樣

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.