溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

發(fā)布時間:2020-06-15 12:12:06 來源:網(wǎng)絡(luò) 閱讀:804 作者:990487026 欄目:開發(fā)技術(shù)


 

常量:#define const 字符串常量

1 8 10 16 進(jìn)制轉(zhuǎn)換

sizeof關(guān)鍵字

變量 int folat char 

類型限定 const volatile register

輸入輸出 printf scanf

運算符 = + - *  / % += -= *= /= %= ++ -- , 運算符優(yōu)先級

代碼塊{}

類型轉(zhuǎn)換


1         C語言中的數(shù)據(jù)類型

1.1      常量

常量就是在程序中不可變化的量,常量是不可被賦值的。

1.1.1         #define

#define的本質(zhì)就是簡單的文本替換

通過#define定義的常量,在C語言里面一般叫宏定義

 

 

1.1.2         const

const定義一個變量,但是這個變量的值只能在定義的時候賦予,之后就不可以修改。

對于const類型的變量,一定要在定義的時候給變量賦初值,不然定義之后就無法賦值了。

 

1.2      字符串常量

C語言當(dāng)中“”引用的字符串都是字符串常量,常量一旦定義也是不可以被修改的。

1.3      位,字節(jié),字

1.3.1         

計算機(jī)內(nèi)部都是二進(jìn)制的,一個二進(jìn)制的位,就叫做一個bit,就是一位

1.3.2         二進(jìn)制

逢二加1,在二進(jìn)制表達(dá)數(shù)的時候是只有01,而沒有2這個數(shù)的

二進(jìn)制最大表示的數(shù),就是2幾次冪

對于8位的CPU來講,最大表達(dá)的數(shù)是28次冪

1.3.3         十進(jìn)制

101,只有從0 9的數(shù),沒有10這個數(shù),


2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

1.3.4         八進(jìn)制

07,逢81

C語言中八進(jìn)制是數(shù)字前面加0

1.3.5         十六進(jìn)制

0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10

161,

C語言當(dāng)中表達(dá)一個十六進(jìn)制數(shù)的方式,數(shù)字前面加0x前綴

1.3.6         字節(jié)

8bit為代表一個字節(jié)

1.4      sizeof關(guān)鍵字

sizeofsize_t類型

sizeof是計算數(shù)據(jù)在內(nèi)存當(dāng)中占多大空間的,單位字節(jié)

由于sizeof永遠(yuǎn)返回的是一個大于等于0的整數(shù),所以如果用int來表示sizeof的返回值就不合適,size_t一般就是一個無符號的整數(shù).

1.5      十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制


2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

1.6      int類型

1.6.1         int常量,變量

一個int型數(shù)據(jù)占據(jù)4個字節(jié)的內(nèi)存大小,在16位操作系統(tǒng)下,int2個字節(jié),在3264位操作系統(tǒng)下,int4個字節(jié)。

int a;//代表在內(nèi)存當(dāng)中開辟一個4個字節(jié)大小的空間

a = 10;//代表4個字節(jié)的空間內(nèi)容是常量10

小端對齊和大端對齊

高地址放高位,底地址放低位---小端對齊

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

對于大型unixCPU都是按照大端對齊方式處理int

但對于x86構(gòu)架CPU,還有ARM,是小端對齊的

2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換


2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換


 



 

1.6.2         printf輸出int

int a = 0x100;//十六進(jìn)制

printf(“%d”,a);%d的意思是按照10進(jìn)制打印一個整數(shù)

%x

%X,輸出十六進(jìn)制的時候是用大寫的ABCDEF還是小寫的abcdef

1.6.3         printf輸出八進(jìn)制和十六進(jìn)制

%o

1.6.4         short,long,long long,unsigned int

32位系統(tǒng)下:

short = 2個字節(jié)

longint一樣,是4字節(jié)

long long 8個字節(jié)

64位操作系統(tǒng)下

int,4個字節(jié)

long 在大多數(shù)64位系統(tǒng)下8個字節(jié)

unsigned int//無符號整數(shù)

unsigned long//無符號的長整數(shù)

unsigned short//無符號短整數(shù)

 

9l,9L,9ll,9LL,9u,9ull,9ULL

1.6.5         整數(shù)溢出

當(dāng)把一個大的整數(shù)賦值給小的整數(shù),叫溢出。

int I = 0x12345678

short a = I;

當(dāng)一個int賦值給short,會將高位拋棄,

1.7      char類型

1.7.1         char常量,變量

char是字符型,代表一個字節(jié)的內(nèi)存

char在內(nèi)存當(dāng)中,有符號最大7f,

無符號,最大ff

unsigned char

char的本質(zhì)就是一個字節(jié),一個BYTE

1.7.2         printf輸出char

%c

1.7.3         不可打印char轉(zhuǎn)義符

\a,警報

\b退格

\n換行

\r回車

\t制表符

\\斜杠

\’單引號

\”雙引號

\?問號

1.7.4         charunsigned char

char取值范圍為-128127

unsigned char0-255

1.8      浮點float,double,longdouble類型

1.8.1         浮點常量,變量

float f = 2.5;

double f1 = 3.1415926

 

1.8.2         printf輸出浮點數(shù)

 

%f,%Lf

1.9      類型限定

1.9.1         const

const限定一個變量的值不可以改變

1.9.2         volatile

告訴編譯器不要自作聰明的給我優(yōu)化代碼,把我的變量優(yōu)化的寄存器里面計算,只要是volatile類型變量,每一步都需要從內(nèi)存當(dāng)中讀取。


2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

1.9.3         register

register告訴編譯器,這個變量只是用寄存器就好,提高效率,所以說register只是一個建議,而不是必須的結(jié)果。

2         字符串格式化輸出和輸入

2.1      字符串在計算機(jī)內(nèi)部的存儲方式

字符串是內(nèi)存中一段連續(xù)的char空間,以’\0’結(jié)尾

字符串就是0結(jié)尾的連續(xù)char的內(nèi)存

2.2      printf函數(shù),putchar函數(shù)

printf格式字符

字符

對應(yīng)數(shù)據(jù)類型

含義

d

int

接受整數(shù)值并將它表示為有符號的十進(jìn)制整數(shù)

hd

Short int

短整數(shù)

hu

Unsigned short int

無符號短整數(shù)

o

unsigned int

無符號8進(jìn)制整數(shù)

u

unsigned int

無符號10進(jìn)制整數(shù)

x / X

unsigned int

無符號16進(jìn)制整數(shù),x對應(yīng)的是abcdef,X對應(yīng)的是ABCDEF

f

floatdouble

單精度浮點數(shù)雙精度浮點數(shù)

e / E

double

科學(xué)計數(shù)法表示的數(shù),此處"e"的大小寫代表在輸出時用的“e”的大小寫

c

char

字符型。可以把輸入的數(shù)字按照ASCII相應(yīng)轉(zhuǎn)換為對應(yīng)的字符

s / S

char * / wchar_t *

字符串。輸出字符串中的字符直至字符串中的空字符(字符串以'\0‘結(jié)尾,這個'\0'即空字符)

p

void *

16進(jìn)制形式輸出指針

%

%

輸出一個百分號

printf附加格式

字符

含義

l

附加在d,u,x,o前面,表示長整數(shù)

-

左對齊

m(代表一個整數(shù))

數(shù)據(jù)最小寬度

0

將輸出的前面補上02 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換直到占滿指定列寬為止2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換不可以搭配使用2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換-2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

N(代表一個整數(shù))

 寬度至少為n2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換不夠以空格填充2 C語言 常量,進(jìn)制,類型限定 輸入輸出 運算符 類型轉(zhuǎn)換

 

printf是打印一個字符串

putchar是打印一個字符

 

2.3      scanf函數(shù)與getchar函數(shù)

 

3         運算符表達(dá)式和語句

3.1      基本運算符

3.1.1         =

數(shù)據(jù)對象:泛指數(shù)據(jù)在內(nèi)存的存儲區(qū)域

左值:表示可以被更改的數(shù)據(jù)對象

右值:能賦給左值的量

3.1.2         +

 

3.1.3         

 

3.1.4         *

 

3.1.5         /

 

3.1.6         %

取模,取余數(shù)

 

3.1.7         +=

int a = 10;

a = a + 5;

可以簡寫成a +=5;

3.1.8         -=

a = a – 5;a -= 5;

3.1.9         *=

a = a * 5;a *= 5;

3.1.10      /=

 

3.1.11      %=

 

3.1.12      ++

 

3.1.13      --

 

3.1.14      逗號運算符

int I = 6 + 5, 3 + 2

逗號表達(dá)式先求逗號左邊的值,然后求右邊的值,整個語句的值是逗號右邊的值。

3.1.15      運算符優(yōu)先級

優(yōu)先級

運算符

結(jié)合性

1

++(后綴),--(后綴),()(調(diào)用函數(shù)),{}(語句塊),.,->

從左到右

2

++(前綴),--(前綴),+(前綴),-(前綴),!(前綴),~(前綴),sizeof,*(取指針值),&(取地址),(type)(類型轉(zhuǎn)化)

從右到左

3

* /, %

從左到右

4

+-

從左到右

5

<< >>

從左到右

6

< > <= >=

從左到右

7

== !=

從左到右

8

&

從左到右

9

^

從左到右

10

|

從左到右

11

&&

從左到右

12

||

從左到右

13

?

從右到左

14

=,*=,%=,+=,-=,<<=,>>=,&=,|=,^=

從右到左

15

,(逗號運算符)

從左到右

 

3.2      復(fù)合語句

{}代碼塊

3.3      類型轉(zhuǎn)化

      double d = 10.2;

     int a =d;//隱式轉(zhuǎn)換

 

      int a1 = 3;

      int a2 = 2;

      double mid = (double)a1 / (double)a2;//顯示的強轉(zhuǎn)

     printf("mid = %f\n", mid);


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI