1. 程式人生 > >C 語言複習筆記

C 語言複習筆記

C語言介紹

我們不多逼逼,直接上 !!!

C語言屬於編譯型語言 (計算機語言分類

C語言 執行的過程:
編譯成 *.obj (編譯器 把 *.c 檔案 編譯成 *.obj檔案)
連線成 *.exe (連結器 把 *.obj 檔案 連結成 *.exe檔案)

C程式的一般 組成 (非全面的):
標號語句
複合語句
表示式語句
選擇語句
迭代語句
跳轉語句

關鍵字
識別符號
運算子
資料

1 .#include 指令和標頭檔案

#include <stdio.h>

上面的語句的作用相當於把stdio.h檔案中的所有內容都輸入該行所在的位置。
實際上。這是一種“拷貝——貼上”的操作。
#include

這是一條前處理器指令

2 . main()函式
main的標準寫法void main(void)

3 .註釋

// 這裡是註釋
/* 
 這裡是註釋
*/

4 .花括號、函式體和塊

{
	...
}

5 .宣告
要使用 某變數 、 某函式 或結構體等 必須先聲明後才能呼叫

基本型別:
day112901
詳見

實際資料長度(非標準長度!!! 視環境與機器 而定論 具體情況具體分析):
day112902

討論 “__int64 與long long 的區別”(無興趣可以無視):
https://blog.csdn.net/shiwei408/article/details/7463476

__int64 型別的輸入與輸出:

#include <stdio.h>
void test__int64IO();

void main(void){
	test__int64IO();
}

void test__int64IO(){
	// 測試 __int64 型別的 輸入 輸出
	__int64 x ;
	printf("請輸入一個整數:");
	scanf("%I64d",&x);
	printf("%I64d\n",x);
}

6 .賦值

7 .printf() 函式
它是一個標準的輸出函式

8 .return 語句
為提高可讀性,我們還是要保持寫return語句的習慣

int main(void){
	...
	return 0;
}

基本資料型別

整型:
ISO C規定int的取值範圍最小為-32768~32767。這句話沒有毛病它說的是最小,不是最大的規定!

不過,隨著技術的發展,現在的個人計算機常見的是,long long佔64位、long佔32位、short佔16位、int佔16位或32位(依計算機的自然字長而定)。
原則上,這4種類型代表4種不同的大小,但是在實際使用中,有些型別之間通常有重疊(大小重疊 如下圖的int long大小是重疊的)。

day1208000

C 標準對基本資料型別只規定了允許的最小大小。
對於16位機,short 和 int的最小取值範圍是[-32768,32767];
對於32位機,long的最小取值範圍是[-2147483648,2147483647,];
對於unsigned short 和 unsigned int ,最小取值範圍是[0,65535];
對於unsigned long ,最小取值範圍是[0,4294967295];
long long型別是為了支援64位的需求(c99中的新定義的標準),最小取值範圍是[-9223372036854775808,9223372036854775807]
usigned long long 的最小取值範圍是[0,1844674407370955161]

參考:https://blog.csdn.net/tenlee/article/details/44997015

進位制數:
八進位制用0表示字首010表示十進位制的8、或者是000010其實還是10進位制的8
十六進位制 用0x、0X表示字首0x0021表示的是十進位制的33、0X101表示的是257

小程式:
day120801

程式

#include <stdio.h>
#include <math.h>
void testBases(void);

void main(void){
	testBases();
}

void testBases(void){
	int x = 100;
	printf("%#o,%d\n",010,010);
	printf("%#x,%d\n",0x10,0x10);
	printf("%d\n",0x0021);
	printf("%d\n",0x00101);	
	printf("十進位制=%d; 八進位制=%o; 十六進位制=%x;\n",x,x,x);
	printf("帶符號 #\n十進位制=%#d; 八進位制=%#o; 十六進位制=%#x;\n",x,x,x);
}

比較噁心的一個點
day120802

printf("%ld,%ld,%ld\n",5ul,5UL,5Lu);

u、l 大小寫都可以,表示的意思都是一樣的
u 表示的是無符號
l 表示的是長整型

char型別用於儲存字元,但是從技術層面看,char是整數型別。
因為char型別實際上存的是整數而不是字元。
計算機使用數字編碼來處理字元,即用特定的整數表示特定的字元。
最常用的是ASCII編碼。