c++基礎知識
定義在class宣告內的成員函式預設是inline函式
進製
問:假設在n進製下,等式
240*12=2880
成立,n值是()
a 19
b 18
c 17
d 16
e 15
f 以上都對 答:
[2*(n^2)+4*(n^1)] * [1*n+2]=2*(n^3)+8*(n^2)+8*(n^1),
化簡後為恒等式,故n為任意值,選f。
sizeof
32位編譯器
char 1個位元組
char* 4個位元組
int 4個位元組
short int 2個位元組
long 4個位元組
float 4個位元組
double 8個位元組
64位編譯器
char* 8個位元組
long 8個位元組
sizeof(struct)
struct的對齊原則整體對齊:總記憶體為其最寬成員的整數倍
問: struct st ;
int sz=sizeof(struct st);
如下c程式,在64位處理器上執行後sz的值是什麼?
a 24
b 20
c 16
d 13
答:
區域性對齊
64位時,指標佔8位元組,所以*p佔8位元組;
int佔4位元組,且8是4的倍數,所以i佔4位元組;
char佔1位元組,且12
是1的倍數,所以a佔1位元組;故,共佔13位元組。
整體對齊
成員中指標占用位元組數最多,為8位元組,所以struct整體占用位元組數因為8的倍數,13 → 16。
指標
請問輸出什麼?
32位編譯器
char 1個位元組
char* 4個位元組
int 4個位元組
short int 2個位元組
long 4個位元組
float 4個位元組
double 8個位元組
64位編譯器
char* 8個位元組
long 8個位元組
sizeof(struct)
對齊原則
總記憶體為其最寬成員的整數倍
每個成員相對於結構體首位址的偏移量(offset)都是成員大小的整數倍
C C 基礎知識
乙個指標可以被多次賦值,但是引用只可以在建立的時候就必須初始化,初始化完畢後就不可改變 乙個指標有它自己的記憶體位址和棧上的大小 x86上面為4byte 但是引用與原有變數共享相同的記憶體位址,但是在棧上仍然占用一些記憶體空間。指標可以指向null,但是引用必須引用乙個有效的物件 乙個指標需要使用 ...
c c 基礎知識
include includeint main else system pause return 0 計算機的原碼用於表示,有符號的前提最高位為符號位,0為正數,1代表負數,其餘各位為數值本身的絕對值,無符號就是資料的絕對值 反碼 正數,反碼與原碼相同 負數,符號位為1,其餘為對原碼取反 補碼 原碼...
C C 基礎知識2
return c pos m 什麼意思?return c pos m 又是什麼意思?還有,a b c return c pos m 什麼意思?相當於 if c pos m else 其中c pos m 表示式是判定 c的值不等於陣列pos中下標為m這個元素的值 是否是對的,如果不等於則是真的,反之是...