1.程式設計驗證大端還是小端
2.int *a[10],int (*a)[10]區別,sizeof(a)方法一:
void
isbigendian()
else
}方法二:
void
isbigendian()
temp;
temp.a =
0x1234;if
( temp.b ==
0x12
)//低位元組存的是資料的高位元組資料
else
}
3.select和epoll的區別,編寫核心的select過程,epoll的兩種觸發方式int *a[10]是乙個陣列指標,a是乙個陣列,10個int型指標的陣列 sizeof(a)=40
int (*a)[10] a是乙個指標,指向10個int型的陣列 sizeof(a)=4;
4.memcpy的實現
5.c++ vector和list的不同void
*memcpy
(char
*dst, char
* src,unsigned
int count)
}
6.希爾排序實現vector:
vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。
因此能高效的進行隨機訪問,時間複雜度為o(1);
但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o(n)。
另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶體空間並進行記憶體拷貝。
list:
list是由雙向鍊錶實現的,因此記憶體空間是不連續的。
只能通過指標訪問資料,所以list的隨機訪問非常沒有效率,時間複雜度為o(n);
但由於鍊錶的特點,能高效地進行插入和刪除。
7.gcc的實現步驟
8.程式記憶體的分割槽1.預處理,生成預編譯檔案(gcc –e hello.c –o hello.i)
2.編譯,生成彙編**(gcc –s hello.i –o hello.s)
3.彙編,生成目標檔案(gcc –c hello.s –o hello.o)
4.鏈結,生成可執行檔案(gcc hello.o –o hello)
9.struct**區:存放函式體二進位制**
全域性區:存放全域性變數和靜態變數
常量區:常量字串,由系統自動釋放
棧區:由編譯器自動釋放,存放函式的引數值和區域性變數值。
堆區:一般由使用者釋放,存放使用new,malloc申請的變數
struct 位元組對齊
10.complex的+過載
11.斐波那契數列的實現
12.過載和重寫的區別:
13.使用巨集定義 一年有多少秒過載:函式名相同,函式的引數個數、引數型別或引數順序三者中必須至少有一種不同。函式返回值的型別可以相同,也可以不相同。發生在乙個類內部。
重寫:也叫做覆蓋,一般發生在子類和父類繼承關係之間。子類重新定義父類中有相同名稱和引數的虛函式。
重寫需要注意:
1、 被重寫的函式不能是static的。必須是virtual的
2 、重寫函式必須有相同的型別,名稱和引數列表
3 、重寫函式的訪問修飾符可以不同。
#define 365*24*60*60ul
unsigned long 強制轉換,防止溢位
iOS開發 面試
今天一大清早去面試,公司距離我家還挺近的,花了乙個小時走著去,也順路印下簡歷,理理思路,到了公司面試官什麼的都不錯,還給我講了很多知識,收穫也是滿滿的,總結下今天都遇到了哪些問題,調整調整狀態.1,當需要自定義tabbar的item的數量可變時怎麼做的 這裡原本是想說自定義tabbar的,不過估計考...
C 後台開發面試 STL相關
六大元件及其關係 空間配置器 容器 迭代器 演算法 仿函式 介面卡 記憶體管理 記憶體配置和物件構造 析構分開。使用雙層級配置器 第一級直接 malloc,free 第二級記憶體池 維護 16 個自由鍊錶 迭代器 一種智慧型指標 vector 動態分配的陣列,連續線性空間 維護 3 個迭代器 sta...
後台開發面試整理之C
對於一些平台,特定的資料型別只能從特定的位址進行讀取,隨意防止將導致錯誤。而更一般的情況是,如果不按照規定存放資料,將會造成讀寫效率上的損耗。比如32位的intel處理器通過匯流排訪問 包括讀和寫 記憶體資料。每個匯流排週期從偶位址開始訪問32位記憶體資料,記憶體資料以位元組為單位存放。如果乙個32...