1. 程式人生 > >C語言基本語法及原理初始:

C語言基本語法及原理初始:

reg 移碼 存儲 存儲類型 關鍵字 向上 取值 靜態 別名

C語言基本語法及原理初始:

/* ******************************************* *

數據類型

說明數據大小

char 1

short 2

int 4

float 4

double 8

構造類型

存儲類型

存放在內存中的位置

(堆、棧(auto)、靜態區域、代碼段)

功能

代碼的操作(幹什麽)

+ - * / % & || 是運算符

控制語句

選擇或循環

函數

* ******************************************** */

標識符

變量:

1. 數字、字母、下劃線

2. 首字母不可以為數字,且區分大小寫

3. 不可與系統關鍵字相同

定義變量的格式:

<存儲類型> <數據類型> <變量名>

| | |申請空間的別名

| |說明申請的空間的大小

| char short int

|

說明申請的空間在內存中的位置的。

auto static extern register

棧 靜態 靜態 寄存器

int a = 998; //初始化

int b; 先定義

b = 998; 後賦值

常量:

直接常量:

int a = 5;

float f = 3.14159;

"hello world";

char c = ‘A‘;

符號常量

#define Pi 3.14159

int a = 6;

int const a = 6;

const int a = 6;

//const表示將a常量化,不可以通過對a賦值改變a的空間

存儲基本單位:

位bit

字節byte KB MB GB

數據的表示方法:

1.整數:

整型數據:

十進制

八進制 <只能表示整數(char short int long)>

十六進制 <只能表示整數(char short int long)>

二進制(C語言不支持,但計算機內部只識別二進制)

進制轉換:

十進制<==>二進制

整數-->二進制 輾轉相除,除2求余,從下向上讀

小數-->二進制 乘2取整,從上向下

二進制 ==>八進制

整型數據的有符號與無符號:

signed int x; (有符號類型最高位作為符號0表示正數,1表示負數)

unsigned int y; (最高位同樣作為有效數據位)

整型的打印:

有符號類型;

printf("%d", x);

無符號類型:

printf("%u", y);

2.字符:

ASCII碼:

原碼:

直接轉成二進制,最原始的二進制表示方法, 但在負數運算時,結果出錯.進而提出反碼.

反碼:

正數的反碼和原碼相同,負數的反碼是在原碼的基礎上取反(符號位不變). 反碼解決了原碼不能計算的問題,但同時帶來了-0,進而提出了補碼. (反碼加法采用循環進位的方法)

補碼:

正數的補碼和反碼相同

負數的補碼在反碼的基礎上+1。(對原取反+1,符號位除外)

取值範圍:

有符號類型字符 : -128 ~ 127

無符號類型字符 : 0 ~ 255

PS:

類型的最大值+1 -->變成類型的最小值

類型的最小值-1 -->變成類型的最大值

3.實型/浮點型:

單精度 float

1位符號位 +8位指數位+23小數位 (偏移碼+127)

將一個浮點型數據存放進內存:

1.將浮點型數據轉換成二進制指數形式,獲取符號位 指數 數據大小

2.float內存最高位存放符號位,緊接著8位存放指數+127的二進制,低23位存放數據的小數位,沒錯,數據的整數位直接丟棄(因為二進制數據的整數位一定是1,所以可以省略,還原時加上就行)

演示:

6.9 存進內存

測試:將 17.625存進內存

雙精度 double

1位符號位 + 11位指數位 + 52小數位 (偏移碼+1023)

精度範圍 能保證15位有效數據

判斷一個float型變量x是否為0:

#define EP 0.000001

if ( (x<=EP)&&(x>=-EP) )

{

}

C語言基本語法及原理初始: