C學習筆記 資料型別

2021-09-16 12:24:59 字數 3426 閱讀 1852

在程式中不可變化的量,也就不可賦值

常用兩種定義方式,#defineconst

另外還有乙個字串常量

define

#define max 100
#define在預編譯的時候,其實也是做的簡單文字替換

可以通過gcc -e test test.c進行驗證

注:使用define定義時候叫做巨集定義,其原理類似於include,其後沒有雙引號

const

const定義乙個變數,一旦定義以後就不可以修改。故const定義的變數在一開始就要賦值,不然在使用的時候就會發生意外,取到的是原記憶體位址的值,為不確定值。

const

int a =

10;

字串常量

在c語言當中""引用的字串叫做字串常量,一旦定義亦不可以被修改的

其形式為"test"

其實質是使用null字元』\0』終止的一維陣列,在記憶體中實際占用的位址位會多一位,即為』\0』占用的位址

由於c語言中沒有專門定義字串常量的關鍵字,故一般是用char陣列定義字串。

char string[6]

=;//等價於

char string=

"test"

;

注:以上實質為陣列,可修改但實際並不是修改字串的值

字串有很多常用的函式,現簡單的列出幾個常用的字串操作函式:

函式功能

strcpy(s1, s2);

複製字串 s2 到字串 s1

strcat(s1, s2);

連線字串 s2 到字串 s1 的末尾

strlen(s1);

返回字串 s1 的長度

strcmp(s1, s2);

如果 s1 和 s2 是相同的,則返回 0;如果 s1s2 則返回大於 0

strchr(s1, ch);

返回乙個指標,指向字串 s1 中字元 ch 的第一次出現的位置

strstr(s1, s2);

返回乙個指標,指向字串 s1 中字串 s2 的第一次出現的位置

sizeof是乙個關鍵字,而不是乙個函式。

sizeof返回的是乙個大於0的整數,表示資料型別在計算機記憶體中占用的空間,單位是位元組

為了表示sizeof的返回值,使用size_t表示sizeof的返回值。即為無符號整形。一般情況下等價於就是unsigned int

sizeof

(int);

sizeof

(char

);

int變數

int是整型

int型別佔據記憶體的大小為4個位元組

16位系統下:2個位元組

32和64位系統下:4個位元組

int a;

//代表在記憶體中開闢乙個大小為4位元組的儲存空間

a =1

;//代表在開闢的空間裡儲存的資料是10這個常量

補充知識:

小端對齊和大端對齊

小端對齊:高位址放高位,底位址放低位

大端對齊:高位址放低位,底位址放高位

對於大型unix cpu都是按照大端對齊方式處理int,但對於x86構架cpu,還有arm,是小端對齊的

printf輸出int的值

int a =10;

printf

("%d"

,a);

//%d的意思是按照10進製列印乙個整數

%d:按照10進製列印乙個整數

%o:按照8進製列印乙個整數

%x與%x:按照16進製制列印乙個整數(區分大小寫列印)

short, long, long long, unsigned int

整數溢位

當把乙個大的整數賦值給小的整數,叫整數溢位

此時會導致高位被拋棄,截斷的資料賦值給小的整數

char變數

char是字元型

char佔據乙個位元組的記憶體

char -128~+127(7f)

unsigned char 0~255(ff)

char就是乙個位元組(byte)

如果將char當作乙個整數輸出的話,就是該字元的ascii碼

printf輸出char

%c 代表輸出乙個字元

常見轉義字元

轉義字元

意義\a

警報\b

退格\n

換行\r

回車\t

製表符\

斜槓\』

單引號\」

雙引號?

問號浮點數變數

浮點數所佔位元組和計算機密切相關

float:單精度浮點數

double:雙精度浮點數

long double

float表示的數,一般結尾加f或者f,以示區分(和double區分)

printf輸出浮點數

%f或者%lf

浮點數賦值給整數,小數字會捨棄。

整數賦值給浮點數,會增加小數字,全部用0填充

型別描述

char

通常是乙個位元組(八位)。這是乙個整數型別。

int對機器而言,整數的最自然的大小。

float

單精度浮點值。單精度是這樣的格式,1位符號,8位指數,23位小數。

double

雙精度浮點值。雙精度是1位符號,11位指數,52位小數。

void

表示型別的缺失。

const

int ci =

10;

volatile

int vi =

10;

register

int ri =

10;

double d =

10.5

;int a = d;

int a =5;

int b =2;

double d =

(double

)a /

(double

)b;

C 學習筆記 資料型別

c 有六種資料型別 bool char wchar t int float和double型。1.bool 布林型 bool型表示兩個邏輯值1或0,如 bool a a true true表示1,false表示0.2.char 字元型 char型變數佔乙個位元組 8位 所以乙個字元型變數可表示0 25...

C 學習筆記 資料型別

每天花點時間,重新拾起c 記錄一些學習筆記,內容根據自己理解逐步更新。1.指標 我們最熟悉的,乙個位元組由8位構成,乙個字由32位構成,這是針對32位作業系統,其實字的大小是依賴於機器的,c 基本資料型別,int short long float double long double長度都是以字為單...

C 學習筆記 資料型別

1 資料型別存在的意義 給變數分配合適的空間。2 整形變數 短整型short 2位元組 整型int 4 長整型long 4 長長整型long long 8 3 sizeof 統計資料型別所佔記憶體的大小。sizeof 資料型別 變數 例如 sizeof short 2。3 浮點型 單精度float ...