開始:
c++內建型別分為兩組:基本型別和復合型別。復合型別有:陣列、字串、指標、引用、結構體和共用體。
總結:char * 位元組數不一樣。還有long的位元組數不一樣,其他都一樣。
32位編譯器:跟編譯器有關。
char :1個位元組
char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double:
8個位元組
long:
4個位元組
long long: 8個位元組
unsigned long: 4個位元組
64位編譯器:
char :1個位元組
char*(即指標變數): 8個位元組
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double:
8個位元組
long:
8個位元組
long long: 8個位元組
unsigned long: 8個位元組
記憶體分配:堆疊
全域性(靜態儲存區)存放全域性變數和靜態變數。包括data段(全域性初始化區)和bbs段(全域性未初始化區)程式結束後由系統釋放。
文字常量區,存放常量字串
程式**區,存放函式體的二進位制**
1.陣列定義中型別不能是引用,即沒有引用陣列,這是因為引用是不能賦值的,而陣列中的元素時可以被賦值。
雖然沒有引用陣列,但是陣列可以引用。 int (&p)=a 引用必須初始化。
2.函式體外定義的內建型別陣列,初始化為0,函式體內定義的內建型別陣列,元素無初始化,若初始化部分元素,則後面的初始化為0.
3.要動態宣告一維陣列。
int *a = new int【n】
釋放 delete 【】a
4.為了相容c語言,c++所有的字串常量都由編譯器自動在末尾新增乙個空字元null
c風格字串末尾必須有乙個字元\0
包括字串常量和末尾新增了\0的字元陣列
5 c/c++中有很多字串處理函式,傳遞給這些標準庫函式例程的指標必須具有非零值,並且指向儀null結束的字元陣列。
6.在宣告多維陣列時,第一維數字可以省略。
7.陣列在初始化時,用花括號進行多維的賦值,不能用(),否則進入裡面單獨運算,整個表示式的值,是最後乙個表示式的值。
8.int **a=new int * [m]
宣告乙個二維陣列,也就是宣告乙個指標陣列。 int *[m]型別是乙個指標陣列型別。
9.const * p 指標指向乙個常量,指標指向的數值不能通過指標修改。
和* const p 常量指標。指標儲存的值不能修改
10.指標陣列,是乙個陣列裡面裝著指標。 int *a[10]
陣列指標 是乙個指向陣列的指標。 int (*p)[10]
11.char *p= "hello" p指向的是位於文字常量區的字串,是不允許修改的,修改也不知道改什麼地方。
12.陣列的首位址是常量,不可以變更。不能對首位址a進行一些加減操作。
13.再次理解二位陣列
int a[4][5]
a是包含四個元素的陣列,每個元素都是由5個整數組成的陣列。
&a 表示陣列的首位址。型別為 int(*)
a 型別為 int * a為指向陣列a第0個元素 a[0]的指標。
*a或a[0] 型別為int * 指向 陣列a[0]的首元素a00 的指標。
14 .在考察多級指標的時候,一定要明確指標指向的是什麼,才能知道它加1後跳過多少位元組。
int a[2][3][4]
則&a的型別是 int (*&a)
顯然 &a的型別是 int (*)[2][3][4] 加1則相當於跳過整個陣列。
15.線性表是一種邏輯結構。
順序表和煉表是一種儲存結構。
線性表中元素的位序是從1開始的,而陣列中元素的下標是從0開始的。
16.對稱矩陣的壓縮,要包括對角線,及對角線以上的元素。
17.只有巨集替換來定義陣列的長度。
18.int在64位系統中佔4個位元組。
19.陣列中乙個數字的出現超過了陣列長度的一半,請找出這個數。
解答:這個數字出現的個數大於其他全部出現個數之和。
如果每次刪除兩個不同的數的話,最後剩餘的一定是那個數字。
a.初始化,設當前的陣列為data,陣列的長度為n,current=data[0];curretnum=1
b.設定i,遍歷整個陣列。
c.當下乙個data[i]與current相同時,就將currentnum++,就是把這個數字的個數加1.
d如果不同,則currentnum--,如果數字刪除乾淨,則current=當前的data[i]
e當i=資料長度時,就輸出current,如果不等於就繼續i++;
(這裡最壞的情況,是每個數都與那個數進行一次比較,但是仍舊是那個數剩下,其他情況,當然也是他剩下。
如果這個數減少到0的話,就換成下乙個數。之前的數因為比較過了,就相當於刪除掉了)
面試筆記1
今天開始準備找實習了,開始準備實習的東西了。接下來開始寫今天看到的小知識。1.宣告,定義,初始化 宣告是指extern int i 定義是指int i 初始化int i 0 區別在於,宣告不分配儲存空間,在這裡編譯的時候是不管的,只有當需要用到i的時候才去檢查。定義的話,就分配一塊空間給它。初始化的...
面試筆記 1
實際上,可以將logistic regression看做是僅含有一層神經元的單層的神經網路。一般用於二分類網路,線性可分的情況,是乙個線性模型,啟用函式sigmoid。logistic regression的乙個優點是logistic cost function 是乙個凸函式,可以求得全域性最小值,...
面試筆記1(找出陣列中重複的數字)
1 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內,陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出數字中任意乙個重複的數字。例如,如果輸入長度為7的數字,那麼對應的輸出是重複的數字2或者3.程式 bool duplicate int numbers,in...