識別符號採用如下兩種方式書寫:駝峰式,下劃線式。
標準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 長形...