C C 基礎知識

2021-07-13 05:13:20 字數 1599 閱讀 6206

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這個元素的值 是否是對的,如果不等於則是真的,反之是...