資料以程式執行期間是否改變或被賦值分為變數和常量。
以計算機中的儲存方式分為兩大基本型別整數型別和浮點數型別,字元與布林型別也被包括於整數型別。
基本型別關鍵字:
c90之前:int short long unsigned char float double
c90新增:signed void(空型別)
c99新增:_bool(布林型別)_complex(複數型別)_imaginary(虛數型別)
位、位元組、字:
描述計算機儲存單元的術語。
位 (bit):最小儲存單元,儲存0或1(用於設定開關),計算機記憶體基本構建塊。
位元組 (byte):1位元組為8位(幾乎所有機器),2^8種組合表示0~255間整數或一組字元。
字 (word):隨計算機被設計時給定自然儲存單位改變,從最初的1字長8位到目前的64位。
關鍵字所佔記憶體(位元組):
intshortlongcharfloatdouble
32位42
4148
64位42
81
48
64位機下經**測試.
除long之外,其它型別在32與64位機下所佔位元組數相同。
此外unsigned short、unsigned int、unsigned long與short、int、long相同,
32位下long double佔12位元組,64位下long double佔16位元組,有效位都為10位元組。
基本運算子:= 、+ 、- 、* 、/ (c沒有指數運算子但庫中函式可用於指數運算)
邏輯運算子:&& 、|| 、!
其它運算子:% 、++ 、-- 、sizeof
1.賦值運算子=: 賦值語句由右向左,右側為常量(右值)或變數或表示式
左側為可修改的左值(標識特定資料物件的名稱或表示式);
c中也可以多重賦值;(a=b=c=5;)
2.加減運算子+、-:運算物件可以是變數、常量、表示式(屬於右值);二元運算子;
3.符號運算子+、-:改變值的代數符號;
4.乘除運算子*、/:整數除法結果(除不盡)中的小數部分被捨棄,稱為截斷,
兩運算物件中任一元為浮點數(或強制型別轉換)則不會出現截斷;
除數為0時則程式會出現警告與異常;
整型接收int/int結果以整型輸出為截斷結果;以浮點型輸出為0的浮點型格式;
浮點型接收int/int結果以整型輸出為0;以浮點型輸出為截斷結果的浮點型格式;(根據結果找**bug)
5.邏輯&&、||、!: 應注意使用方法
邏輯與&&兩邊各為能判斷出真值的表示式,且判斷後面的表示式的前提為前方表示式(或變數)真值為非0。
部分情況下也可用於化簡迴圈語句中的判斷條件。同理邏輯或 || 在前面條件為0的情況下編譯器直接跳過後 面表示式判斷。
邏輯非 !的使用則要根據物件的不同帶上括號防止語法錯誤。
6.自增自減++、--:使用時根據是否在一條完整的語句中判斷先後自增或自減,忌同一條語句中多次使用。
7.按位運算子: 按位與&、按位或 |、按位取反
~、按位異或^:作
用與邏輯運算子類似,物件為
二進位制。
8.左移右移運算子:左移
<<
、右移》
應用:(函式體部分)
①判斷奇偶: return (x
&1); (奇數返回1,偶數返回0)
同理x%4:return (x
&2);②整數平均值:return (x
&y)+
((x^
y)>>
1);
③整數是否為2的冪:return((
x&(x
-1))
==0)&&
(x!=0
); ④不使用中間變數交換兩數值: x^=
y; y^=
x; x^=
y;也可以:x
= x+y - x; y
=x+y - x
;⑤求絕對值: y=x
>>
31;
return(x
^y)-
y;⑥取模、乘除也可以轉化為位運算。
ps:部分內容引自《c primer plus》。
《C語言筆記 指標相關 二 》
指標型別決定了指標如何參與運算 1,指標參與運算時,因為指標變數本身儲存的數值是表示位址的,所以運算也就是位址的運算。2,指標參與運算的特點是,指標變數加1並不是真的加1,而是加1 sizeof 指標型別 如果是int 指標,則加1實際上就是表示位址 4 位址 sizeof int 如果是char ...
C語言相關演算法
給出年,月,日,計算改日是該年的第幾天 include void main scanf d d d year,month,day int d,i d day if year 4 0 year 100 0 year 400 0 for i 0 i printf d n d include define...
C語言相關知識
在linux系統之中,eof根本不是乙個字元,而是當系統讀取到檔案結尾,所返回的乙個訊號值 也就是 1 linux中,在新的一行的開頭,按下ctrl d,就代表eof 如果在一行的中間按下ctrl d,則表示輸出 標準輸入 的快取區,所以這時必須按兩次ctrl d windows中,ctrl z表示...