C語言的資料型別

2021-07-13 14:41:57 字數 4700 閱讀 4254

識別符號採用如下兩種方式書寫:駝峰式,下劃線式。

標準c函式有輸入輸出緩衝區,linux的函式無此。當使用scanf讀取,輸入非法時,使用scanf(「%*[^\n]」);scanf(「%*c」);從而不影響對後面讀取資料的影響.

特別注意執行時,scanf的輸入格式,空空格,打不打逗號。

scanf.c

#include

int main()

inbuf.c

#include

int main()

else

}printf("num是%d\n", num);

return

0;}

一些需注意的**格式:

關鍵字後面接空格,函式名後面不要空格

, ;不空格且向前靠攏

&&  ||  !=   ==   >=  <=   =  +  -  *  / 這些操作符前後都要空格

++   自減    .   -> 前後都不空格

字元型別是一種資料型別,其中包含了256個不同的字元。字元型別的名稱是char,這種型別的資料使用兩個單引號表示,例如『a』表示字元a

ascii碼表記錄了字元和數字之間的對應關係

『a』——97(0x61)

『a』——65(0x41)

『0』——-48

所有字元分成兩組,每組包含128個不同的字元,一組固定被轉換成0到127之間的數字,另一組在某些計算機上被轉換成-1到-128之間的數字,在另外一些計算機上被轉換成128到255之間的數字

字元型別資料最好不要當成數字使用

unsigned char也是一種資料型別,表示無符號字元型,這種型別的數字範圍固定從0到255,無符號字元型別資料可以當成數字使用

根據ascii碼表有如下結論:『c』-『a』=』c』-『a』 『c』-『a』=』2』-『0』=2-0

『\n』:換行符(表示前後內容分散在兩個不同的行中)

『\r』:回車符(表示後面的內容從行首開始)

『\t』:製表符(保證後面的內容從某一段的開頭開始輸出)

『\』:代表\

『\」』:代表「

『\」:代表『

短整數也是一種資料型別,它的名稱是short,短整數型別一共包含65536個不同的整數,範圍是從-32768到32767

unsigned short是無符號短整數型別,無符號短整數型別的數字範圍是從0到65536為止

長整數也是一種資料型別,它的名稱是long,long型別包含2的32次方個不同的數字,其中一半是負數,另一半是非負數

unsigned long表示無符號長整數型別,數字範圍是從0到2的32次方減一為止

在我們使用的計算機和編譯器環境下int和long是一樣的

單精度浮點型別是一種表示帶小數點數字的資料型別,它的名字是float

雙精度浮點型別也是一種資料型別,它的名字是double

程式中不帶小數點的數字都被看成是int型別的數字

程式中在不帶小數點的數字後面加乙個u表示這個數字是unsigned int型別的

程式中帶小數點的數字被看成是double型別的數字

程式中在帶小數點的數字後面加上乙個f表示這個數字是float型別的

char—————%c

short————–%hd

unsigned short—–%hu

long—————%ld

unsigned long——%lu

int—————-%d

unsigned int——-%u

float————–%f或%g

double————-%lf或%lg

列印字串——————%s

佔位符特殊用法

%3d 數字佔3個位置

%03d 數字佔三個位置,空的位置用0補充

%-3d 佔3個位置,數字從最左邊的位置開始輸出

%7.2f 一共佔7個位置,小數點後佔2個位置

列印位址用%p格式,是十六進製制的

計算機的記憶體被劃分成很多位元組,任意兩個位元組的大小一樣

所有變數都是由乙個或多個連續的位元組構成的

char,unsigned char————-1個位元組

short,unsigned short———–2個位元組

long,unsigned long————-4個位元組

int,unsigned int—————4個位元組

float————————–4個位元組

double————————-8個位元組

sizeof關鍵字可以計算乙個變數或某個資料型別佔的位元組個數

1、給出指定資料型別所佔記憶體的位元組,如果括號裡是資料,則返回給定資料在記憶體中占用的位元組數

sizeof(char)—–> 1

size(5)——>4

2、不會對括號內的表示式進行計算

例如:

int a=2;

printf(「%d\n」,sizeof(a++));//a=2

3、如果括號裡有不同型別的資料,會按照資料型別最長的資料來進行返回。

sizeof(3+2.5)———->8

二進位制是一種表示數字的方式,每個數字上是0或者是1,每個位置上的1代表的數字都是2的整數次方,最右邊的位置編號為0,向左依次遞增,編號為n的位置上的1對應的數字是2的n次方

每個位元組可以劃分成八個二進位制位

二進位制轉換十進位制

0110 0011=2^6+2^5+2^1+2^0=64+32+2+1=99

0101 1101=2^6+2^4+2^3+2^2+2^0=64+16+8+4+1=93

十進位制轉換二進位制

71 ** ***1

35 0*** ***1

17 00** ***1

8 000* ***0

4 0000 ***0

2 0000 0**0

1 0000 00*1

0 0000 0000

0100 0111

除以2取餘倒著寫

另一種從十進位制轉二進位制的方法

103=64+32+4+2+1 2^7=128 2^6=64

八進位制也是一種表示數字的方式

01100010=01 100 010=0142 八進位制數前面加0

佔位符%o可以讓輸出為八進位制

十六進製制也是二進位制的另外一種表示方式

01100010=0110 0010=0x62

a—-10 b—-11 c—-12 d—-13 e—-14 f—-15

十六進製制列印的佔位符是%x或%x

負數的二進位制是相反數的二進位制按位取反後加一的結果(補碼)

按位取反加一的方法可以計算任何乙個二進位制數字的相反數,不管是正還是負

有符號數字的最左邊二進位制位叫做符號位,0表示正數,1表示負數

所有有符號型別的最小數的二進位制都是左邊乙個1右邊很多0

整數型別變數之間互相賦值,會保留原有二進位制不變,但在新資料中的解釋方式會改變,從大空間變到小空間,會丟掉部分,從小空間擴到大空間,多的位要取決於原數,原數若無符號,則多的位全為0,若有符號,則多的位取決於符號位

mingw是windows作業系統裡的gcc

//這裡,附乙個簡單的用c寫的貪吃蛇的程式,小蛇不能增長

snake.c

#include

#include

#include

#define snakehead '+'

#define snaketail '-'

#define size 10

typedef struct pos;

typedef struct snake;

snake snake;

bool is_same(const pos* pfirstpos, const pos* psecondpos)

else

}void init_snake()

} do

void show_map()

else if ((row == snake.head

.row) && (col == snake.head

.col))

else if ((row == snake.tail

.row) && (col == snake.tail

.col))

else

}printf("\n");

}}void move_snake()

break

; case 'a':

if ((snake.head

.col - 1) >= 0)

break

; case 's':

if ((snake.head

.row + 1) < size)

break

; default:

if ((snake.head

.col = 1) < size)

break

; }

}}int main()

return 0

;}

c語言的資料型別

c 資料型別 基本資料型別 構造資料型別 指標型別 空型別。其中,構造資料型別包括 陣列,列舉型別,結構體,聯合體。基本資料型別有 整形,浮點型,字元型。常用的整型常量有 十六進製制 0x開頭 八進位制 0開頭 十進位制。c語言變數遵守 先定義後使用 的規則。預設情況下,定義的變數是有符號的。int...

C語言的資料型別

一 c的資料型別 1.什麼是資料型別 2.各資料型別的位元組長度和指標變數的位元組長度 3.變數及變數的特點 4.右左法則及舉例 5.sizeof 和strlen 一.c的資料型別 1.什麼是資料型別 資料型別就是資料集合的劃分,不同的資料型別對cpu具有不一樣的意義,所以一定要注意相應變數資料型別...

C語言的資料型別

今天學習的c語言的資料型別,看了資料型別的總覽圖,發現c語言的資料型別之多之龐大。c語言主要三大型別 構造型,基本型別,指標型和空型別 void 今天主要學習的就是其中的基本型別,基本型別又分為 字元型 char 數值型 和 列舉型 enum 數值型分為 整形 短整型 short 整形 int 長形...