C 查漏補缺(一)

2021-08-21 03:28:18 字數 1973 閱讀 4329

const

int *p;//去掉 int 為 const *p ,p所指向的空間裡的值不變

int * const p;//p 不變,p不能在指向其它位址

const

struct devices dev[5];//去掉型別struct devices 變成 const dev[5],dev[5]陣列裡的值不變

struct devices const * dev[5];//這是乙個devices結構體型別的指標陣列,const * dev[5],指標陣列dev中每個元素指向的空間裡的值不變

char * *p1;//p1是指向char型別指標的指標

const

char * *p2;//p2是指向const char型別指標的指標

char * const * p3;//p3是指向char型別const指標的指標

const

char * const * p4;//p4是指向const char型別的const指標的指標

char ** const p5;//p5是指向char型別指標的const指標

const

char ** const p6;//p6是指向const char型別指標的const指標

char * const * const p7;//p7是指向char型別const指標的const指標

const

char * const * const p8;//p8是指向const char型別const指標的const指標

int * (*pfun)(int);//p是乙個函式指標,指向乙個有int型的引數,並且返回值是乙個int型的指標

int * fun(int);//func是乙個指標函式,函式的返回值是指標

pfun = fun//把函式的位址賦給函式指標

(*pfun)(a)//int a ,通過函式指標呼叫這個函式

不要返回區域性變數的指標和引用

enum

color

colorval;

聯合體

約定為32位系統,即char

1位元組、short

2位元組、int

4位元組該問題總結為兩條規律:

1,每個結構體成員的起始位址為該成員大小的整數倍,即int型成員的其實位址只能為0、4、8等

2,結構體的大小為其中最大成員大小的整數倍

struct a;

struct b;

sizeof(a) == 12

sizeof(b) == 8

typedef

union u

u;

typedef

struct s

s;

u大小至少要容納最大的b[5]=4*5=20位元組,同時要是變數型別最大值得整數倍,即sizeof(double)=8的整數倍,所有sizeof(u)=24

s的大小計算,聯合體的自身對齊值為成員變數的最大對齊值,也就double的自身對齊值8(起始位址為0/8),所以s得大小為0+4+4+8+2+6+24+2+6=56

判斷大端小端的函式

true/false

bool checkcpu()

c; c.a = 1;

return (1 == c.b);//小端模式為true

}a 和 b 共享記憶體,當是小端模式時低位址是資料低位 1,c.b的值才能是1

不引入第三變數,交換兩個變數的值(設a=a1,b=b1)

#include using namespace std;

int main()

輸出 a = 1000, b = 9999

;

C語言查漏補缺

char a 2 20 a 1 hello 這是錯誤的。c語言把這語句解釋為乙個指標與另乙個指標之間的 非法的 賦值運算。但是在初始化時,char a 2 20 是允許的。對於字串陣列,可以使用 法1 char strs 2 strs 1 hello 法2 char strs 2 20 strcpy...

DOM查漏補缺

使用getattribute 方法只能獲取屬性的文字內容,比如script或者style就不方便了,因此建議使用屬性的方法來獲取,即elenode.attr這種形式 但是自定義的標籤屬性必須使用getattribute 方法來獲得。屬性的方法會返回undefined 修改class通過屬性名的方法是...

CSS查漏補缺

從父類繼承 padding inherit 字母大寫 小寫,首字母大寫 h1 h2 credits 字母 漢字間距 letter spacing 0.2em 文字對齊方向 text align right 鏈結下劃線aa hover 首字母 首行 p.intro first letter p.int...