c基礎複習
1.資料型別:
有符號數是最高位為符號位,0代表正數,1代表負數。
無符號數最高位不是符號位,而就是數的一部分,無符號數不可能是負數。
當我們寫程式要處理乙個不可能出現負值的時候,一般用無符號數,這樣可以增大數的表達最大值。
有符號:signed
無符號:unsigned
預設情況下,定義變數時省略使用signed,定義無符號的數時要用到unsigned
無符號數輸出的佔位符:%u\u
整型: 型別: 範圍
short ,(-2^15 ~ 2^15-1)
int ,(-2^31 ~ 2^31-1)
long ,(-2^31 ~ 2^31-1)
long long,(-2^63 ~ 2^63-1)
大小:2 4 4 8
注:對於long:windows為4位元組,linux為4位元組(32位),8位元組(64位)
sizeof不是函式,所以不需要包含任何標頭檔案,它的功能是計算乙個資料型別的大小,單位為位元組
sizeof的返回值為size_t
size_t型別在32位作業系統下是unsigned int,是乙個無符號的整數
佔位符:%hd %d %ld %lld
2.字元型:
char ch='a';ascii碼上的東西
大小寫差了32
字元變數實際上並不是把該字元本身放到變數的記憶體單元中去,
而是將該字元對應的 ascii 編碼放到變數的儲存單元中。
char的本質就是乙個1位元組大小的整型。
佔位符:%c
大小:1位元組
3.浮點型:
浮點型變數是用來儲存小數數值的。在c語言中, 浮點型變數分為兩種:
單精度浮點數(float)、 雙精度浮點數(double), 大小分別為4 8位元組
但是double型變數所表示的浮點數比 float 型變數更精確。
不以f結尾的常量是double型別,以f結尾的常量(如3.14f)是float型別。
科學法賦值
a = 3.2e3f; = 3200,e可以寫e
printf("a1 = %f\n", a);
a = 100e-3f; //100*0.001 = 0.1
printf("a2 = %f\n", a);
佔位符:%f %lf
4.進製:
十進位制,二進位制,八進位制,十六進製制
輸出的佔位符:%d 無 %o %x
定義八進位制是以0開頭的 0-7
定義十六進製制是以0x開頭 0-9 a-f
5.計算機中數的儲存:
在計算機系統中,數值一律用補碼來儲存。
補碼特點:
對於正數,原碼、反碼、補碼相同
對於負數,其補碼為它的反碼加1
補碼符號位不動,其他位求反,最後整個數加1,得到原碼
6. 數值溢位
當超過乙個資料型別能夠存放最大的範圍時,數值會溢位。
有符號位最高位溢位的區別:符號位溢位會導致數的正負發生改變,
但最高位的溢位會導致最高位丟失。
7.型別限定
extern
宣告乙個變數,extern宣告的變數沒有建立儲存空間。
extern int a;//變數在定義的時候建立儲存空間
const
定義乙個常量,常量的值不能修改。
const int a = 10;
volatile
防止編譯器優化**
register
定義暫存器變數,提高效率。
register是建議型的指令,而不是命令型的指令,
如果cpu有空閒暫存器,那麼register就生效,
如果沒有空閒暫存器,那麼register無效。
8.字串常量
符串是記憶體中一段連續的char空間,預設以'\0'(數字0)結尾。
字串常量是由雙引號括起來的字串行,如「china」、「c program」,「$12.5」等都是合法的字串常量。
printf是輸出乙個字串,putchar輸出乙個char。
佔位符為%s:表示輸出乙個字串,遇到\0停止,如果在乙個字元陣列中沒有\0則會溢位 出現燙燙燙~
getchar是從標準輸入裝置讀取乙個char。
scanf通過%轉義的方式可以得到使用者通過標準輸入裝置輸入的資料。
scanf("%d%d",&s,&b);
是以空格或者換行符分割
scanf()把輸入的字串轉換成整數、浮點數、字元或字串,而
printf()正好與它相反,把整數、浮點數、字元和字串轉換成顯示在螢幕上
的文字。
scanf()讀取基本變數型別的值,在變數名前加上乙個&;
如果用scanf()把字串讀入字元陣列中,不要使用&。
void
test3()
void
test1()
void
test2()
intmain
(void
)
C語言基礎複習
終於狠下心來深入學習c語言,之前學了一些皮毛,今天就先複習了一下之前學到的東西,順便做個總結。c語言預處理命令 預處理命令並非c 語言的一部分,但它可以引導 c編譯器做一些額外的工作。巨集定義在習慣上均以大寫表示。ansi c的預處理命令有下面這些 define 巨集定義 例 define true...
C 基礎複習 三
看 然後回答問題 難度係數65 delegate是引用型別還是值型別?enum int和string呢 難度係數40 delegate引用型別,enum值型別,int引用型別,string引用型別。struct也是值型別 class class1 static void stringconvert ...
c 基礎複習 緒論
計算機程式語言的發展,什麼是計算機程式語言?計算機程式語言是計算機可以識別的語言,用於描述解決問題的方法,供計算機閱讀和執行。計算機程式語言的發展從機器語言 只能有計算機郵件系統可以識別的二進位制組成的語言 到組合語言 將機器語言對映為一些可以被人讀懂的助記符,在這個時候本人並沒有系統的學習到組合語...