-
左移<<:
高位丟棄,低位補零??
實現(xiàn)2倍乘運算: 左移n位就是將數(shù)值*2的n次方
注意:如果數(shù)據(jù)類型為有符號型,由于高位丟棄,發(fā)生溢出
查看全部 -
異或:兩者相斥才為1
符號:^
應(yīng)用:
按位反轉(zhuǎn):a^0xFF
實現(xiàn)數(shù)值交換:a=a^b;b=b^a,a=a^b
查看全部 -
16進制數(shù)0xFF=1111 1111=255
查看全部 -
按位與判斷奇偶性:
a為偶數(shù):a&1 == 0
a為奇數(shù):a&1 != 0
查看全部 -
位 0 false 1 true
&按位與,整型或字符型,補碼
a=4;00000000000000000000000000000100
b=7;00000000000000000000000000000111
a&b=00000000000000000000000000000100=4
迅速清零a&0=0
查看全部 -
malloc分配內(nèi)存塊的函數(shù)
sizeof判斷數(shù)據(jù)類型的長度符
查看全部 -
共用體:
1、不同數(shù)據(jù)類型的變量共享一個內(nèi)存地址
2、該結(jié)構(gòu)體所占實際內(nèi)存為最大的成員所占
3、關(guān)鍵字union
union data{
..
..
}
union data data_1
查看全部 -
如何對結(jié)構(gòu)體進行初始化和訪問結(jié)構(gòu)體成員:
1、初始化 在花括號內(nèi) 對結(jié)構(gòu)體內(nèi)變量成員依次賦值即可
struct weapon weapon_1 = {"w_name",100,200};
2、訪問結(jié)構(gòu)體成員:使用運算符.
:weapon_1.name,weapon_1.price//根據(jù)初始化的內(nèi)容,=200
結(jié)構(gòu)體數(shù)組:struct weapon weapon_2[2];
初始化就依次就好了:
查看全部 -
結(jié)構(gòu)體:
寫在 main()函數(shù)之前
結(jié)構(gòu)體是不同類型變量的集合(與數(shù)組很不同)
例子:
寫一個武器的結(jié)構(gòu)體類型
首先使用關(guān)鍵字struct?
struct weapon{
????char name[20];
????int atk;
????int price;
};
在int main(){中使用這個數(shù)據(jù)類型
struct weapon 變量名;
如果要使用結(jié)構(gòu)體數(shù)據(jù)類型作為全局變量,可在寫struct的時候在}后寫變量名然后;。
比如:
struct weapon{
????char name[20];
????int atk;
????int price;
}weapon1;
查看全部 -
typedef 與#define作用域不同:
#define如果寫到了自定義函數(shù)里面,在這函數(shù)外面還是可以使用的
但typedef就不行了。
查看全部 -
定義 結(jié)構(gòu)體
struct stu{
}
在使用這個結(jié)構(gòu)體的時候麻煩
:struct stu xxx;
所以常常這樣寫
typedef struct stu{
}stu_t;
之后通過 stu_t xxx;創(chuàng)建結(jié)構(gòu)體
查看全部 -
與宏相近的語法:typedef(type define)?
作用:給變量類型起別名,當(dāng)你感覺某變量名別扭,甚至數(shù)據(jù)類型名別扭時。。經(jīng)常用在給自定義的數(shù)據(jù)類型起名字
比如數(shù)據(jù)類型size_t實際是系統(tǒng)用typedef語法處理了
typedef unsigned long size_t
注意:宏#define 眼里是沒有C語法的,所以不以分號結(jié)尾。
但typedef是C 需要以;結(jié)尾
注意:typedef int *p意義是:int *=p,所以p q=指針q
區(qū)別:在經(jīng)過預(yù)處理后 typedef起的別名是不會替換回去的
查看全部 -
預(yù)處理過程其實還有一個條件編譯的功能:可以根據(jù)不同的條件,編譯不同的程序部分從而產(chǎn)生不同的目標(biāo)代碼文件,對程序的移植和調(diào)試很有用
查看全部 -
注意:
1、宏定義是完全字符串替換 所以這里 a+b加個()。防止一些意想不到的錯誤。
2、但也有好處 :都是實現(xiàn)求和,定義函數(shù)求和對變量的數(shù)據(jù)類型只能與寫函數(shù)的時候保持一致,而宏定義實現(xiàn)求和沒有這個.
查看全部 -
宏也有函數(shù)形式,可以有參數(shù),參數(shù)可以是代碼里面定義的變量 :
#include<stdio.h>
#define R 20
#define N(n) n*10
int main(){
?????int a=R;
???? int b=N(a)//打印b 會發(fā)現(xiàn)b=20*10=200
查看全部
舉報