-
注意符號位
a<<n? ? ?a=a*2^n;
查看全部 -
按位異或作用:(1)定位反轉
(2)數值交換?
a = a^b;
b = b^a;
a = a^b;
查看全部 -
a為偶數:a&1 == 0
a為奇數:a&1 != 0
查看全部 -
預處理----->編譯----->匯編----->鏈接
查看全部 -
終于看懂了
#define M int main( ,這句話的意思是用 M 代替 "int main( "這一串字符,所以后面的 M) 就相當于?int main()。
查看全部 -
左移n位=*2^n
注意溢出現象——int在移出時符號為被移出。
右移n位=/2^n
查看全部 -
按位異或:按位翻轉;數值交換(a=a^b; b=b^a; a=a^b;);取反。。。。。。
查看全部 -
按位或的用法:設置指定位置(將指定位置和其的全1或)。。。。。。
查看全部 -
按位與的用處:清零(與全零與);保留特定位;判斷奇偶數(和1與)。。。。。。
查看全部 -
靜態數據結構:系統自動分配存儲空間——整型、浮點型、數組。。。
動態數據結構:鏈表
鏈表包括頭文件和元素,頭文件包括地址,元素包括每一個節點,每一個節點包括用戶需要的數據和下一個節點的地址(元素地址不定是線性的)
malloc函數用于分配動態空間,在頭文件<malloc.h>之下。
查看全部 -
結構體占用的內存空間是字節對齊的,使計算機可以快速讀寫以空間換取時間:最后一個成員的偏移量+最后一個成員的大小+末尾的填充字節數
偏移量是此成員實際首地址和結構體首地址之間的距離;
成員字節大小,例,int是4字節, char是1字節
填充字節數偏移量不足4的倍數的,填充。
與結構體不同,共用體和其成員的地址都是一樣的。
查看全部 -
3種調用成員變量的方法:
結構體變量名稱.成員變量名
(*p).成員變量名
p->成員變量名
指針p=weapons;
struct weapon weapons[2]={{"name1",100,200},{"name2",100,200}};
printf("%s\n",p->name);//此時輸出為weapons[0].name,即name1
p++;//指向了weapons[1]
查看全部 -
結構體中的成員變量表示方法:結構體變量名.成員變量名。
結構體數組每一個元素都是一個結構體類型。
查看全部 -
struct xxx{
};//struct xxx是一個類型的名字,像是int
定義和聲明分離:struct xxx{
};
struct xxx elephant;
定義和聲明一體:struct xxx{
}elephant;
結構體名和結構體變量名一致(只能定義一次):
struct{}elephant;
查看全部 -
本質上是和宏定義類似的關鍵字。
寫法:typedef 原名 別名;
typedef int *p;//int *別名是p
經過預處理之后,別名不會被替換
作用域和#define不同,非全局。
查看全部
舉報