久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. C++基礎(chǔ)面試題

      時(shí)間:2022-07-13 16:49:03 面試 我要投稿
      • 相關(guān)推薦

      C++基礎(chǔ)面試題

      1,以下代碼中的兩個(gè)sizeof用法有問(wèn)題嗎?

      C++基礎(chǔ)面試題

      sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無(wú)法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。注意:數(shù)組名作為函數(shù)參數(shù)時(shí),退化為指針。數(shù)組名作為sizeof()參數(shù)時(shí),數(shù)組名不退化,因?yàn)閟izeof不是函數(shù)。

      請(qǐng)問(wèn)以下代碼有什么問(wèn)題

      int main()

      {

      char a;

      char *str = &a;

      strcpy(str,”hello”);

      printf(str);

      return 0;

      }

      沒(méi)有為str分配內(nèi)存空間,將會(huì)發(fā)生異常

      問(wèn)題出在將一個(gè)字符串復(fù)制進(jìn)一個(gè)字符變量指針?biāo)傅刂贰km然可以正確輸出結(jié)果,但因?yàn)樵浇邕M(jìn)行內(nèi)在讀寫(xiě)而導(dǎo)致程序崩潰。

      Strcpy的在庫(kù)函數(shù)string.h中,程序的主要程序在于越辦進(jìn)行內(nèi)存讀寫(xiě)導(dǎo)致程序崩潰。

      2,const char* s = “AAA”;

      Printf(“%s”,s);

      S[0] = ‘B’;

      Printf(“%s”,s);

      “AAA”是字符串常量,S是指針,指向這個(gè)字符串常量,所以聲明s的時(shí)候就有問(wèn)題。

      Const char* s =”AAA”,然后又因?yàn)槭浅A浚詫?duì)S[0]的賦值操作是不合法的。

      3,Char szstr[10];

      Strcpy(szstr,”0123456789″);

      產(chǎn)生什么結(jié)果?為什么?

      正常輸出,長(zhǎng)度不一樣,會(huì)造成非法的OS,覆蓋別的內(nèi)容

      4,交換兩個(gè)變量的值,不使用第三個(gè)變量。即a=3,b=5,交換之后a=5,b=3;

      兩種解法,一種是用算術(shù)算法,一種是用^(異或)

      a = a+b;

      b = a-b;

      a = a-b;

      or

      a = a^b;//只能對(duì)int ,char

      b = a^b;

      a = a^b;

      or

      a ^= b ^=a;

      5,指出下面代碼的輸出,并解釋為什么

      main()

      {

      int a[5] = {1,2,3,4,5};

      int *ptr = (int *)(&a+1);

      printf(“%d,%d”,*(a+1),*(ptr-1));

      }

      輸出:2,5

      6,將”引用”作為函數(shù)返回值類(lèi)型的格式、好處和需要遵守的規(guī)則

      格式:類(lèi)型標(biāo)識(shí)符 &函數(shù)名(形參列表及類(lèi)型說(shuō)明){//函數(shù)體}

      格式:在內(nèi)存中不產(chǎn)生被返回值的副本:(注意:正是因?yàn)檫@點(diǎn)原因,所以返回一個(gè)局部變量的引用是不可取的。因?yàn)殡S著該局部變量生存期的結(jié)束,相應(yīng)的引用也會(huì)失效。)

      注意事項(xiàng):

      不能返回局部變量的引用。主要原因是局部變量會(huì)在函數(shù)返回時(shí)被銷(xiāo)毀,因此被返回的引用就成為了”無(wú)所指的”引用,程序會(huì)進(jìn)入未知狀態(tài)。

      不能返回函數(shù)內(nèi)部new分配的內(nèi)存的引用。雖然不存在局部變量的被動(dòng)銷(xiāo)毀問(wèn)題,可對(duì)于這種情況(返回函數(shù)內(nèi)部new分配內(nèi)存的引用),又面臨其它尷尬的局面。如,被函數(shù)返回的引用只是作為一個(gè)臨時(shí)變量出現(xiàn),而沒(méi)有被賦予一個(gè)實(shí)際的變量,那么這個(gè)引用所指向的空間(由new分配)就無(wú)法釋放。

      可以返回類(lèi)成員的引用,但最好是const。主要原因是當(dāng)對(duì)象的屬性是與某種業(yè)務(wù)規(guī)則相關(guān)聯(lián)時(shí),其賦值常常與某些其它屬性或者對(duì)象的狀態(tài)有關(guān),因此有必要將賦值操作封裝在一個(gè)業(yè)務(wù)規(guī)則當(dāng)中。如果其它對(duì)象可以獲得該屬性的非常量引用(或指針),那么對(duì)該屬性的單純賦值就會(huì)破壞業(yè)務(wù)規(guī)則的完整性。

      多態(tài)的作用:

      隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼能夠模塊化;擴(kuò)展代碼模塊,實(shí)現(xiàn)代碼重用;

      接口重用:為了類(lèi)在繼承和派生的時(shí)候,保證使用家庭中任一類(lèi)的實(shí)例的某一屬性時(shí)的正確調(diào)用。

      精彩文章推薦:

      【C++基礎(chǔ)面試題】相關(guān)文章:

      經(jīng)典C/C++面試題07-11

      華為C++/MFC面試題07-11

      java 基礎(chǔ)面試題07-11

      華為全套面試題(基礎(chǔ)版)07-11

      華為全套面試題(基礎(chǔ)版)107-11

      華為C/C++筆試題07-11

      華為C/C++筆試題系列二07-11

      面試題與技巧07-12

      華為面試題07-11

      「MySQL」經(jīng)典面試題07-11