程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++面試(一),面試

c++面試(一),面試

編輯:C++入門知識

c++面試(一),面試


1.在c++中可以通過"::"來直接操作全局變量。

2.i++與++i效率的比較。

(1)內建數據類型時,他們的效率差別不大。

(2)自定義數據類型(類等)的情況,(++i)可以返回對象的引用,而(i++)必須返回對象的值,所以導致在大對象的時候產生了較大的復制開銷,效率低。

3.假設浮點變量的名字為x,它與0.0比較:

if((x<=-EPSINON)&&(x<=EPSINON))

if((x<-EPSINON)||(x>EPSINON))

4.注:當表達式中存在無符號類型時,所有的操作數都自動轉換成無符。

char getChar(int x,int y)

{

  char c;

  unsigned int a=x;

  (a+y)>10?(c=1):(c=2);

  return c;

}

(1)(7,-7):-7轉化成一個很大的數,與7相加正好溢出,其值為0。

(2)(7,-8):-8轉化成一個很大的數,與7相加差1就溢出了,返回1。

5.兩數交換,推薦使用按位異或的方式。

void swap(int &a,int &b)    //采用引用傳參的方式

{

  a^=b;

  b^=a;

  a^=b;

}

6.atexit()函數,在mian()函數執行完後被執行。

頭文件:#include <stdlib.h>

atexit()被調用的順序與他們在main()中注冊的順序相反。

7.sizeof()  //結構體、類等,大小需要對齊。

(1)普通函數不占內存,只用虛函數占用一個指針大小的內存。  //virtual void print() {}

(2)空類:class A{},編譯器會安排一個指針大小的內存。

(3)#pragma pack()  //強行改變對其大小

#include <iostream.h>

#pragma pack(2)

struct test{

  char c;

  short s1;

  short s2;

  int i;

}

int main()

{

  cout << sizeof(test)<<endl;

  return 0;

}

=>10

8.inline 內聯函數的適用場合:用來定義存取函數(set/get函數等)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved