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...