亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言基礎教程 新手必看

2020-02-24 14:37:45
字體:
來源:轉載
供稿:網友

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

1. 整型 int

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


2. 聲明 int 類型的變量

正如我們在以前的教程里看到的那樣,int 用于聲明整型變量:以 int 打頭,后面跟著變量的名字,最后以分號(;)結束。例如:

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

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


3. 初始化變量

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

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

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

?


4. int 常量

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


5. 輸出 int 型數據
我們可以用 printf 函數來輸出 int 型數據。正如我們在前面的教程中看到的那樣,占位符 %d 代表輸出的是 int 型數據,它告訴 printf 函數在什么地方輸出相應的 int 型數據。%d 也被稱為格式限定符(format specifier),因為它指定了 printf 函數應該使用什么形式來輸出數據。printf 函數的第一個參數只能是字符串,這個字符串被稱為格式串(format string)。格式串中有多少個 %d,我們就應該相應地提供多少個 int 型參數給 printf 函數。int 型參數可以是 int 型變量,int 型常量,以及結果為 int 型的表達式等。例如:

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

保證格式限定符的數目和參數數目一致是我們的責任,編譯器不負責捕捉這種錯誤!例如:

#include stdio.h>

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

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

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

這個程序可以通過編譯,但是運行結果將會出乎意料,因為我們少寫了兩個參數。第一個 %d 被參數 ten 的值代替,而另外兩個 %d 將被內存中本來儲存著的值代替。因為內存中本來儲存著的值是不確定的,所以輸出結果是不確定的。


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

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


7. 以八進制或者十六進制形式輸出數據

使用格式限定符 %o 可以以八進制的形式輸出整數。注意,是小寫字母 o ,不是數字 0 。使用 %x 或者 %X 可以以十六進制的形式輸出整數。小寫 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;
}

這個程序的輸出是:

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

?

  

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

1. 其它整數類型

int 是 C 語言的基本整數類型,可以滿足我們處理一般數據的需求。C 語言還提供了四個可以修飾int的關鍵字:shortlong、signed,以及unsigned。利用這四個關鍵字,C 語言標準定義了以下整數類型:

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

一般我們把 short 稱為短整型,把 long 稱為長整型,把 long long 稱為超長整型,把 int 稱為整型。unsigned 打頭的那些整數類型統稱為無符號整型。例如:我們稱 unsigned short 為無符號短整型。以此類推。


2. 聲明方式

這些整數類型的聲明方式與 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標準,那就不能使用long long和unsigned long long。


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

標準也規定了這些整數類型的最小取值范圍。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)。
標準規定,int 的表示范圍不能小于 short 的表示范圍,long 的表示范圍不能小于 int 的表示范圍。這就是說 short 型變量占用的空間可能比 int 型變量少,而 long 型變量占用的空間可能比 int 型變量多。16 位(bit)的計算機中,int 和 short 一般都是 16 位,而 long 是 32位;32位的計算機中,short一般是 16 位,而long和int是 32位。TC2(16位的編譯器)中,int是16位的;而 Dev-C++(32 位的編譯器)中,int 是 32 位的。
使用 unsigned int 聲明的變量只能表示正整數。如果 int 是 16 位的話,那么 unsigned int 的表示范圍是 0 到65535(2^16 - 1)。這是因為unsigned 不需要符號位,可以把 16 個位全都用于表示整數。而 int 需要一個位作為符號位,用于表示正負,只有 15 個位用于表示整數。
目前,long long 一般 64 位,long 是 32 位,short 是 16 位,而 int 或者 16 位,或者 32 位。具體某個編譯器到底使用多少位來表示這些類型,我們可以用運算符 sizeof 來獲取。例如:

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

sizeof 的用法我們以后會講到,現在只要有個印象就好了。第二句中的 %zu 是 C99 特有的,如果您的編譯器不支持 C99(準確地說,應該是如果您的編譯器使用的庫函數不支持 C99),運行結果將會出錯。


4. 整數類型的選擇

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

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

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

以上就是C語言基礎教程,想必都了解了吧,更多相關內容請繼續關注武林技術頻道。

?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情啊啊啊| 亚洲国产一区二区三区在线观看| 国产丝袜一区视频在线观看| 亚洲欧美日韩成人| 91精品久久久久久综合乱菊| 国产精品久久久| 日韩av在线免费| 亚洲女人被黑人巨大进入al| 色多多国产成人永久免费网站| 欧美成人免费在线视频| 福利一区视频在线观看| 69久久夜色精品国产69乱青草| 成人黄色生活片| 45www国产精品网站| 国产精品福利在线| 国产精品网站视频| 国语自产精品视频在线看| 大桥未久av一区二区三区| 国产盗摄xxxx视频xxx69| 欧美日韩中文字幕在线| 亚洲乱码一区av黑人高潮| 国产国语videosex另类| 久久精品2019中文字幕| 国产黑人绿帽在线第一区| 欧美在线日韩在线| 亚洲国模精品一区| 日韩欧美一区二区三区| 久久九九免费视频| 亲子乱一区二区三区电影| 欧美日韩国内自拍| 欧美最猛性xxxxx(亚洲精品)| 国产女同一区二区| 中文字幕精品—区二区| 亚洲偷欧美偷国内偷| 国产精品v日韩精品| 亚洲欧美日韩爽爽影院| 亚洲日本aⅴ片在线观看香蕉| xxav国产精品美女主播| 综合av色偷偷网| 高清欧美性猛交| 国产视频在线一区二区| 亚洲a在线观看| 91精品国产777在线观看| 亚洲人成人99网站| 日韩成人av在线播放| 欧美成人免费小视频| 欧美老少做受xxxx高潮| 国产精品一区电影| 国产成人鲁鲁免费视频a| 98精品在线视频| 成人国产精品免费视频| 中文字幕精品网| 久久久久久久国产精品视频| 亚洲片国产一区一级在线观看| 伊人久久久久久久久久久久久| 欧美精品www在线观看| 欧美精品videosex极品1| 91久久综合亚洲鲁鲁五月天| www.亚洲人.com| 成人有码视频在线播放| 九九热r在线视频精品| 亚洲国产精品999| 中文字幕在线观看亚洲| 亚洲另类激情图| 午夜精品一区二区三区视频免费看| 久久视频免费观看| 亚洲石原莉奈一区二区在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 日韩欧美在线视频日韩欧美在线视频| 91亚洲人电影| 日本欧美一二三区| 久久国产精品免费视频| 亚洲精品国精品久久99热一| 国产小视频国产精品| 欧美久久精品一级黑人c片| 亚洲综合第一页| 欧美一区二区三区免费视| 久久精品国产精品| 97视频人免费观看| 91av在线播放视频| 国产一区二区日韩| 色偷偷av一区二区三区乱| 成人激情黄色网| 欧美电影免费观看高清完整| 91免费国产视频| 欧美丰满少妇xxxxx| 日本免费一区二区三区视频观看| 亚洲男人av在线| 亚洲精品第一国产综合精品| 精品国产91久久久久久老师| 538国产精品一区二区免费视频| 国产精品高清网站| 欧美有码在线观看视频| xxxxxxxxx欧美| 国产99久久精品一区二区 夜夜躁日日躁| 久久久久久尹人网香蕉| 777国产偷窥盗摄精品视频| 欧美成人精品在线视频| 97精品免费视频| 国产精品日韩av| 综合网日日天干夜夜久久| 欧美激情亚洲一区| 欧洲永久精品大片ww免费漫画| 欧美性受xxxx黑人猛交| 亚洲女人天堂色在线7777| 日韩中文有码在线视频| 日韩高清欧美高清| 日韩亚洲欧美中文在线| 国产美女久久精品香蕉69| 97视频在线观看网址| 国产精品扒开腿做爽爽爽男男| 国产精品99久久久久久久久| 久久久久中文字幕2018| 亚洲黄色片网站| 亚洲视频电影图片偷拍一区| 91大神福利视频在线| 久久久久久伊人| 久久成人亚洲精品| 亚洲影院污污.| 亚洲国产精品网站| 91欧美视频网站| 亚洲第一网站男人都懂| 中文字幕日本精品| 色综合男人天堂| 久久激情视频免费观看| 日韩中文字幕在线精品| 1769国产精品| 日韩电影中文字幕一区| 国产男女猛烈无遮挡91| 亚洲精品资源美女情侣酒店| 日韩美女在线观看一区| 98精品国产自产在线观看| 亚洲已满18点击进入在线看片| 国产精品高清在线观看| 91超碰中文字幕久久精品| 亚洲欧美一区二区三区情侣bbw| 成人免费看黄网站| 国产精品久久久久久久久久久新郎| 97精品一区二区三区| 亚洲视屏在线播放| www.午夜精品| www欧美xxxx| 最好看的2019年中文视频| 久久精品国产一区| 久久全球大尺度高清视频| 欧美日韩人人澡狠狠躁视频| 在线成人免费网站| 国产精品专区h在线观看| 国产精品久久激情| 91热精品视频| 日韩电视剧在线观看免费网站| 色老头一区二区三区在线观看| 亚洲国模精品一区| 亚洲黄色成人网| 国产盗摄xxxx视频xxx69| 国产在线观看一区二区三区| 国产精品在线看| 在线观看免费高清视频97| 国产精品欧美激情在线播放| 亚洲欧美日韩中文视频| 少妇久久久久久| 在线播放国产一区二区三区| 最近中文字幕日韩精品| 久久精品国产欧美亚洲人人爽|