每天被面試虐一點點(一)

2021-07-06 01:07:36 字數 2129 閱讀 7517

1.如果myclass為乙個類,執行」myclass a[5], *b[6]」語言會自動呼叫該類建構函式的次數是5

myclass a[5],會建立5個物件,所以會自動呼叫5次建構函式,但是myclass *b[6],這不會自動呼叫建構函式,因為這是宣告乙個指向6個元素的陣列的指標,指標宣告的時候是不分配空間的,所以不會呼叫建構函式,沒有指向乙個有效的記憶體空間。

2.這段**徹底坑死人了,我在windown64,vc++32可以執行出來,但是就是在linux下的gcc執行不出來,肯定與編譯器和環境有關係了,如果在linux下記得在main函式中加入struct st_t st[16],如果要列印結構體大小,請sizeof(struct st_t),不然編譯器識別不出來。

struct st_t  ; 

st_t st[16];

char *p = (char *)( st[2].errstr + 32 );

printf( "%d", ( p - (char *)(st) ) );

3.void *memset(void *s, int ch, size_t n);  函式解釋:將s中前n個位元組 (typedef unsigned int size_t )用ch替換並返回s.作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法,通常為新申請的記憶體做初始化工作.剛開始還犯了乙個很嚴重的錯誤,char *str ="qwertyuioplkjhgfdsaz";常量區不能被修改

#include #include int main(int argc,char *argv)

4.這段**只要注意b就好,它修改的不是指標指向的值,而是改變的是指標本身的位址

5 另乙個基本的c語言問題

unsigned char *p1;

unsigned long *p2;

p1=(unsigned char *)0x801000;

p2=(unsigned long *)0x810000;

請問p1+5= ; p2+5= ;

就是乙個指標加法中1代表什麼的問題  1代表的是乙個單位量

p1+5=p1+5*1=p1+5*sizeof(unsigned char)=p1+5*1=0x801000+ox5=0x801005

p2+5=p2+5*1=p2+5*sizeof(unsigned long)=p1+5*4=0x810000+20=0x810000+0x14=0x810014 6

class a ;

class b : public a

則建構函式中,成員變數一定要通過初始化列表來初始化的是b和c

引用,const成員變數,基類建構函式 一定要通過初始化列表來實現。 static型別不是類成員,不需要通過初始化列表來初始化

7.下列關於虛函式的說法正確的是(cd)

a在建構函式中呼叫類自己的虛函式,虛函式的動態繫結機制還會生效在

b析構函式中呼叫類自己的虛函式,虛函式的動態繫結機制還會生效

c靜態函式不可以是虛函式

d虛函式可以宣告為inline

解析:static 成員函式不能宣告為虛函式,為什麼?不能被重寫唄,虛函式是可以被重寫的,靜態函式是類的,static 成員函式 是屬於類的 沒有this, 所有類的物件共有virtual 必須有this的感念,根據this的實際 class 來決定如何呼叫,因為靜態成員函式沒有this指標,同時其函式的指標存放也不同於一般的成員函式,其無法成為乙個物件的虛函式的指標以實現由此帶來的動態機制。靜態是編譯時期就必須確定的,虛函式是執行時期確定的。,inline函式和virtual函式有著本質的區別,inline函式是在程式被編譯時就展開,在函式呼叫處用整個函式體去替換,而virtual函式是在執行期才能夠確定如何去呼叫的,因而inline函式體現的是一種編譯期機制,virtual函式體現的是一種執行期機制。虛函式可以宣告為inline,但是編譯器會忽略inline屬性。

每天被面試虐一點點(二)

1.gdb命令 backtrace bt列印當前的函式呼叫棧的所有資訊。info threads顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。前面有 的是當前除錯的執行緒。set scheduler locking執行緒除錯 顯示執行緒狀態,...

每天進步一點點

很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...

每天進步一點點

在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...