面試題記錄
2023年6月13日杭州某網路技術公司
1,空指標自加
int *p;
int *pa=null;
p=pa;
p++;
求p的值
這道題考的貌似指標的加法,因為對於空指標比較敏感直接感覺有問題,所以填寫出錯.
到底如何呢?直接反彙編之
int *p;
int *pa=null;
010d14f1 mov dword ptr [pa],0 ;指向0x000000000位址
p=pa;
010d14f8 mov eax,dword ptr [pa] ;將pa賦予eax暫存器
010d14fb mov dword ptr [p],eax ;將eax暫存器賦予p指標p=0x00000000
p++;
010d14fe mov eax,dword ptr [p];將p指標賦予eax指標
010d1501 add eax,4 ;對eax暫存器+4(32位作業系統指標大小為4位元組)=0x00000004
010d1504 mov dword ptr [p],eax ;所以p=0x00000004
所以最後的結果是p=4
2,逗號運算子的使用
int i,a =1,*b=&a;
i=0,a==*b;
求i的值
這裡疑惑在於i=0,a==*b;
使用逗號運算子理論上講是沒有問題,不過感覺不會那麼簡單就回答出錯.
i=0,a==*b;
010d14ea mov dword ptr [i],0
發現因為後面的a==*b沒有任何意義被編譯器優化.而僅對i賦值.
3,逆序bit轉換,int bit0與bit31互換,bit1與bit30互換
void reverseint(int* pvalint)
{ int val = *pvalint;
int ilow = 0x0000001;
for(int i =0;i<16;i++)
{ int ivalhigh = val<4,乙個三位數被9除餘
7,被7
除餘5,被5
除餘3,被3
除餘2,列出
所有三位數
9*7*5 =315(最小公倍數)
313,628,943
面試中經常遇到的關於繼承的題
問:構造函式呼叫虛函式
,呼叫的是本身的虛函式還是基類的虛函式?
答:呼叫的是自身的虛函式
,因為在該階段已經初始化完成
,反彙編如下:
//drived class constructor
00c518b5 push eax
00c518b6 lea eax,[ebp-0ch]
00c518b9 mov dword ptr fs:[00000000h],eax
00c518bf mov dword ptr [ebp-14h],ecx
00c518c2 mov ecx,dword ptr [ebp-14h]
00c518c5 call virtualconstructor::virtualconstructor (0c51073h)
00c518ca mov dword ptr [ebp-4],0
00c518d1 mov eax,dword ptr [ebp-14h]
00c518d4 mov dword ptr [eax],offset virtualdrivedconstructor::`vftable' (0c5677ch) ;已經獲取到繼承類的虛表,相應的就可以找到對應的虛函式位址
init();
00c518da mov ecx,dword ptr [ebp-14h]
00c518dd call virtualdrivedconstructor::init (0c5103ch)
面試題記錄
筆試面試題總結 1,var a 0 function a catch e 0 this.b bbb var aa new a settimeout function 0 settimeout的作用域是window,所以結果為1,2,bbb,b但是將 中的第二個settimeout去掉之後,結果為1,...
面試題記錄
1 linux實時檢視日誌 tail f catalina.out 2 linux檢視埠是否被占用 etstat tunlp grep 埠號,用於檢視指定埠號的程序情況 lsof i 80 3 linux查詢abc開頭的檔案的第一行輸出到指定檔案 system bin sh ls users zha...
面試題記錄
spring特性 mq寫入資料庫失敗怎麼辦 mysql事務特性 原子性 要麼全部成功,要麼全部失敗回滾。一致性 一致性是指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態。隔離性 事務與事務相互不可見,互不干擾。隔離級別 可讀未提交,可讀已提交,可重讀,可序列化。永續性 永續性是指乙個事務一旦...