麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

C語言基礎(chǔ)教程 新手必看

2020-02-24 14:37:45
字體:
供稿:網(wǎng)友

  C語言是一門通用計(jì)算機(jī)編程語言,今天小編就給大家分享一篇關(guān)于C語言基礎(chǔ)教程吧,感興趣的朋友跟小編一起來了解一下吧!

1. 整型 int

C 語言提供了很多整數(shù)類型(整型),這些整型的區(qū)別在于它們的取值范圍的大小,以及是否可以為負(fù)。int 是整型之一,一般被稱為整型。
int 代表有符號(hào)整數(shù),也就是說,用 int 聲明的變量可以是正數(shù),可以是負(fù)數(shù),也可以是零,但是只能是整數(shù)。標(biāo)準(zhǔn)規(guī)定 int 的最小取值范圍是 -3276732767。int 的取值范圍因機(jī)器而異,但是一定要大于或者等于-32767到 32767。一般來說,int 占用一個(gè)的內(nèi)存空間。因此,字長(zhǎng)為 16 位的舊式 IBM 兼容機(jī)使用 16 位來儲(chǔ)存整型 int ,取值范圍是 -3276832767 。目前的個(gè)人電腦一般都是 32 位字長(zhǎng)的,這些電腦中,int一般也是32位的,取值范圍是 -2147483648到 2147483647 。對(duì)于使用 64 位 CPU 的電腦,使用更多字節(jié)儲(chǔ)存 int 也是很自然的事情,取值范圍當(dāng)然也會(huì)更大。


2. 聲明 int 類型的變量

正如我們?cè)谝郧暗慕坛汤锟吹降哪菢樱琲nt 用于聲明整型變量:以 int 打頭,后面跟著變量的名字,最后以分號(hào)(;)結(jié)束。例如:

int erns; /* 聲明一個(gè)變量 */
/* 注意:一定要用逗號(hào)(,),不能用分號(hào)(;)*/
int hogs, cows, goats; /* 聲明三個(gè)變量 */

以上聲明創(chuàng)建了變量,但是沒有給它們提供“(value)”。在前面的教程中,我們已經(jīng)用了兩種方法使變量獲得“值”。一種是賦值:cows = 500; 。另一種是使用 scanf 函數(shù):scanf( "%d", &goats ); 。下面我們來學(xué)習(xí)第三種方法。


3. 初始化變量

初始化變量是指給變量賦初值:聲明變量的時(shí)候,在變量名的后面寫上等號(hào)(=),然后寫下你希望賦予變量的“值”。例如:

int hogs = 21;
int cows = 32, goats = 14;
int dogs, cats = 94;

以上聲明創(chuàng)建了變量,并且為這些變量分配了空間,同時(shí)也賦了初值。注意,第三行中只有 cats 被初始化為 94,而 dogs 沒有被初始化!如下圖:

?


4. int 常量

上面的例子中,21、32、14,以及 94 都是整數(shù)常量。C 語言中,整數(shù)常量的默認(rèn)類型是 int ,也就是說,整數(shù)常量占用內(nèi)存空間的大小一般等于 int 類型的變量占用空間的大小。如果整數(shù)常量的大小超過了 int 的取值范圍,那么編譯器將會(huì)把這個(gè)整數(shù)常量當(dāng)作 long int 類型來處理,這個(gè)我們后面還會(huì)講到。
21、32、14 和 94 都在 int 的取值范圍之內(nèi),因此它們都是 int 常量。


5. 輸出 int 型數(shù)據(jù)
我們可以用 printf 函數(shù)來輸出 int 型數(shù)據(jù)。正如我們?cè)谇懊娴慕坛讨锌吹降哪菢樱嘉环?%d 代表輸出的是 int 型數(shù)據(jù),它告訴 printf 函數(shù)在什么地方輸出相應(yīng)的 int 型數(shù)據(jù)。%d 也被稱為格式限定符(format specifier),因?yàn)樗付?printf 函數(shù)應(yīng)該使用什么形式來輸出數(shù)據(jù)。printf 函數(shù)的第一個(gè)參數(shù)只能是字符串,這個(gè)字符串被稱為格式串(format string)。格式串中有多少個(gè) %d,我們就應(yīng)該相應(yīng)地提供多少個(gè) int 型參數(shù)給 printf 函數(shù)。int 型參數(shù)可以是 int 型變量,int 型常量,以及結(jié)果為 int 型的表達(dá)式等。例如:

int year = 2005; /* year 是 int 型變量 */
printf( "Today is %d-%d-%d/n", year, 9, 20 + 9 ); /* 20 + 9 是加法表達(dá)式 */

保證格式限定符的數(shù)目和參數(shù)數(shù)目一致是我們的責(zé)任,編譯器不負(fù)責(zé)捕捉這種錯(cuò)誤!例如:

#include stdio.h>

int main(void)
{
int ten = 10, two = 2;

printf("%d minus %d is %d/n", ten ); /* 少寫了兩個(gè)參數(shù) */

getchar(); /* 等待用戶按回車 */
return 0;
}

這個(gè)程序可以通過編譯,但是運(yùn)行結(jié)果將會(huì)出乎意料,因?yàn)槲覀兩賹懥藘蓚€(gè)參數(shù)。第一個(gè) %d 被參數(shù) ten 的值代替,而另外兩個(gè) %d 將被內(nèi)存中本來儲(chǔ)存著的值代替。因?yàn)閮?nèi)存中本來儲(chǔ)存著的值是不確定的,所以輸出結(jié)果是不確定的。


6. 八進(jìn)制(octal)和十六進(jìn)制(hexadecimal)

C 語言中,整數(shù)常量默認(rèn)是十進(jìn)制(decimal)整數(shù)。通過在整數(shù)常量前面加上特定的前綴,可以把它設(shè)定為八進(jìn)制或者十六進(jìn)制整數(shù)。前綴 0x 或者 0X 把整數(shù)常量設(shè)定為十六進(jìn)制整數(shù)。注意,是數(shù)字 0 ,而不是字母 O ,別搞錯(cuò)了哦!例如:十進(jìn)制的 16 用十六進(jìn)制來表示是 0x10 或者 0X10 。在整數(shù)常量前面加上前綴 0 ,表示它是八進(jìn)制整數(shù)。注意,是數(shù)字 0 ,而不是字母 O 。例如:十進(jìn)制的 16 表示為八進(jìn)制就是 020 。


7. 以八進(jìn)制或者十六進(jìn)制形式輸出數(shù)據(jù)

使用格式限定符 %o 可以以八進(jìn)制的形式輸出整數(shù)。注意,是小寫字母 o ,不是數(shù)字 0 。使用 %x 或者 %X 可以以十六進(jìn)制的形式輸出整數(shù)。小寫 x 表示輸出使用小寫字母,大寫 X 表示輸出使用大寫字母。使用 %#o,%#x 或者 %#X,得到的輸出將包括前綴 0,0x 或者 0X。例如:

#include stdio.h>

int main(void)
{
int x = 200;

printf("dec = %d; octal = %o; hex = %x; HEX = %X/n", x, x, x, x);
printf("dec = %d; octal = %#o; hex = %#x; HEX = %#X/n", x, x, x, x);

getchar();
return 0;
}

這個(gè)程序的輸出是:

dec = 200; octal = 310; hex = c8; HEX = C8
dec = 200; octal = 0310; hex = 0xc8; HEX = 0XC8

?

  

11. 基本數(shù)據(jù)類型:整型(中)
?

1. 其它整數(shù)類型

int 是 C 語言的基本整數(shù)類型,可以滿足我們處理一般數(shù)據(jù)的需求。C 語言還提供了四個(gè)可以修飾int的關(guān)鍵字:shortlongsigned,以及unsigned。利用這四個(gè)關(guān)鍵字,C 語言標(biāo)準(zhǔn)定義了以下整數(shù)類型:

1) short int(可簡(jiǎn)寫為 short),和 int 一樣,也是有符號(hào)整數(shù)
2) long int(簡(jiǎn)寫:long),有符號(hào)整數(shù)
3) long long int(簡(jiǎn)寫:long long),C99 標(biāo)準(zhǔn)添加的類型,
有符號(hào)整數(shù)
4) unsigned int(簡(jiǎn)寫:unsigned),無符號(hào)整數(shù),不能表示負(fù)數(shù)
5) unsigned long int(簡(jiǎn)寫:unsigned long),無符號(hào)整數(shù),
不能表示負(fù)數(shù)
6) unsigned short int(簡(jiǎn)寫:unsigned short),無符號(hào)整數(shù),
不能表示負(fù)數(shù)
7) unsigned long long int(簡(jiǎn)寫:unsigned long long),
C99 添加的類型,無符號(hào)整數(shù)
8) 所有沒有標(biāo)明 unsigned 的整數(shù)類型默認(rèn)都是有符號(hào)整數(shù)。
在這些整數(shù)類型前面加上 signed 可以使讀者更清楚地知道
這些是有符號(hào)整數(shù),盡管有沒有 signed 都表示有符號(hào)整數(shù)。
例如:signed int 等同于 int 。

一般我們把 short 稱為短整型,把 long 稱為長(zhǎng)整型,把 long long 稱為超長(zhǎng)整型,把 int 稱為整型。unsigned 打頭的那些整數(shù)類型統(tǒng)稱為無符號(hào)整型。例如:我們稱 unsigned short 為無符號(hào)短整型。以此類推。


2. 聲明方式

這些整數(shù)類型的聲明方式與 int 類型的聲明方式一樣。例如:

long int estine;
long johns;
short int erns;
short ribs;
unsigned int s_count;
unsigned players;
unsigned long headcount;
unsigned short yesvotes;
long long ago; /* C99 特有 */
unsigned long long ego; /* C99 特有 */

如果您的編譯器不支持C99標(biāo)準(zhǔn),那就不能使用long long和unsigned long long


3. 取值范圍(表示范圍)

標(biāo)準(zhǔn)也規(guī)定了這些整數(shù)類型的最小取值范圍。short 的最小表示范圍和 int 一樣,都是 -32767 到 32767 。也就是 -(2^15 - 1)到(2^15 - 1)。其中,2^15表示 2 的 15 次方。類似地,2 的 20 次方記作 2^20 ,以此類推。注意:C 語言中 2^15 并不表示 2 的 15 次方,為了書寫方便,我們姑且這么表示。long 的最小取值范圍是 -2147483647 到 2147483647 。也就是 -(2^31 - 1) 到
(2^31 - 1) 。unsigned short的最小表示范圍和unsigned int 一樣,都是 0 到 65535(2^16 - 1)。unsigned long 的最小取值范圍是 0 到 4294967295(2^32 - 1)。long long的最小取值范圍是 -9223372036854775807(-(2^63 - 1))到 9223372036854775807(2^63 - 1);unsigned long long 是 0 到
18446744073709551615(2^64 - 1)。
標(biāo)準(zhǔn)規(guī)定,int 的表示范圍不能小于 short 的表示范圍,long 的表示范圍不能小于 int 的表示范圍。這就是說 short 型變量占用的空間可能比 int 型變量少,而 long 型變量占用的空間可能比 int 型變量多。16 位(bit)的計(jì)算機(jī)中,int 和 short 一般都是 16 位,而 long 是 32位;32位的計(jì)算機(jī)中,short一般是 16 位,而long和int是 32位。TC2(16位的編譯器)中,int是16位的;而 Dev-C++(32 位的編譯器)中,int 是 32 位的。
使用 unsigned int 聲明的變量只能表示正整數(shù)。如果 int 是 16 位的話,那么 unsigned int 的表示范圍是 0 到65535(2^16 - 1)。這是因?yàn)閡nsigned 不需要符號(hào)位,可以把 16 個(gè)位全都用于表示整數(shù)。而 int 需要一個(gè)位作為符號(hào)位,用于表示正負(fù),只有 15 個(gè)位用于表示整數(shù)。
目前,long long 一般 64 位,long 是 32 位,short 是 16 位,而 int 或者 16 位,或者 32 位。具體某個(gè)編譯器到底使用多少位來表示這些類型,我們可以用運(yùn)算符 sizeof 來獲取。例如:

printf( "%lu/n", (unsigned long)sizeof(int) * 8 ); /*輸出 int 的位數(shù) */
printf( "%zu/n", sizeof(short) * 8 ); /* 輸出 short 的位數(shù) */

sizeof 的用法我們以后會(huì)講到,現(xiàn)在只要有個(gè)印象就好了。第二句中的 %zu 是 C99 特有的,如果您的編譯器不支持 C99(準(zhǔn)確地說,應(yīng)該是如果您的編譯器使用的庫函數(shù)不支持 C99),運(yùn)行結(jié)果將會(huì)出錯(cuò)。


4. 整數(shù)類型的選擇

如果您要處理的只是正整數(shù),那么應(yīng)該優(yōu)先使用 unsigned 打頭的那些整數(shù)類型。如果您要處理的整數(shù)超出了int所能表示的范圍,并且您的編譯器中,long的表示范圍比 int 大,那就使用 long 。不過,若非必要,盡量不要用 long ,因?yàn)樗赡軙?huì)降低程序運(yùn)行效率。有一點(diǎn)要注意:如果您的編譯器中,long和int都是32位的,并且您需要使用32位整數(shù),那么應(yīng)該用long,而不要用int。只有這樣,我們的程序才可以安全地移植到16位的計(jì)算機(jī),因?yàn)?16位的計(jì)算機(jī)中,int 一般也是16位的。類似地,如果您需要使用64位整數(shù),那就用 long long。如果 int 是 32 位的話,那么使用 short 可以節(jié)省空間,不過您得確保您要處理的整數(shù)不會(huì)超出 short 的表示范圍。這種“節(jié)省”對(duì)內(nèi)存大的計(jì)算機(jī)來說,是沒什么意義的。

5. long 型常量和 long long 型常量

一般來說,整數(shù)常量是被當(dāng)作 int 類型來存儲(chǔ)的。如果我們使用的整數(shù)常量超出了 int 的表示范圍,C 語言規(guī)定編譯器自動(dòng)使用 unsigned int 來處理這個(gè)常量。如果 unsigned也不足以表示這個(gè)常量的話,編譯器就會(huì)用long 。如果還表示不了的話,那就依次用unsigned long,long long,unsigned long long。如果unsigned long long也表示不了,那么編譯器就沒轍了。注意:long long 和unsigned long long 是 C99 特有的。例如:如果 int 是 16 位的話,它就表示不了常量 1000000。編譯器會(huì)使用 long 來處理這個(gè)常量,因?yàn)?unsigned int 也表示不了 1000000 。
同樣,十六進(jìn)制和八進(jìn)制整數(shù)常量通常也是被作為 int 來處理。但是,當(dāng)我們使用的常量超出了
int的表示范圍后,編譯器會(huì)依次使用unsigned int,long,unsigned long,long long 和 unsigned long long。直到所使用的類型足以表示那個(gè)常量為止。
有時(shí),我們使用的是較小的常量,但是我們希望這個(gè)常量被當(dāng)作 long 來處理,這就需要在這個(gè)
常量后面加上后綴 l(小寫字母 l)或者 L(大寫字母 L)。我們應(yīng)該避免使用 l ,因?yàn)?l 容易和數(shù)字 1 混淆。例如:整數(shù)常量 7 是被作為 int 來處理的,但整數(shù)常量 7L(或者 7l)是被作為 long 來處理的。類似地,在整數(shù)常量后面加上后綴 ll 或者 LL ,這個(gè)常量就會(huì)被當(dāng)作 long long 來處理。例如:3LL 。如果想使用無符號(hào)整數(shù)常量的話,還要配合使用后綴 u 或者 U 。例如:2u,3U,4Lu,5ul,6LU,7LLU,8Ull,9uLL 。
這些后綴也可以用于十六進(jìn)制和八進(jìn)制整數(shù)常量。例如:020L,010LL,
0x30uL,0x40ull 。

以上就是C語言基礎(chǔ)教程,想必都了解了吧,更多相關(guān)內(nèi)容請(qǐng)繼續(xù)關(guān)注武林技術(shù)頻道。

?

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 羞羞视频免费视频欧美 | 成人免费观看毛片 | 成人视屏在线观看 | 色播av在线 | 亚洲日本韩国在线观看 | 久久吊 | 黄色片网站在线免费观看 | 久久久精品视频免费看 | 在线成人av观看 | 亚洲欧美国产高清va在线播放 | 黄色免费入口 | 99国产精品欲a| 国产精品久久久久久模特 | 日韩一级免费毛片 | 成人福利在线观看 | 极色品影院 | 一级做a爱片性色毛片 | 久久成人免费观看 | 日本特级a一片免费观看 | 欧美成人精品一级 | 7777网站| 国产亚洲综合一区二区 | 日韩精品无码一区二区三区 | 免费福利在线视频 | 香蕉国产片 | 成年人网站国产 | 欧美雌雄另类xxxxx | 中国字幕av | 中国av免费在线观看 | 黄色视频a级毛片 | 久久亚洲一区二区三区成人国产 | www69xxxxx| 国产女同疯狂激烈互摸 | 亚洲成人国产综合 | 91精品最新国内在线播放 | 91久久精品一 | 国产成人高清成人av片在线看 | 91精品国产手机 | 久久精品日产第一区二区三区 | 国产一国产精品一级毛片 | 精品亚洲在线 |