找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2697|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言教程(2)-關(guān)鍵字 變量

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99082 發(fā)表于 2015-12-10 03:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
--啥是關(guān)鍵字呢


這圖里的程序就是大家C語(yǔ)言考試?yán)锏?strong>考試重點(diǎn):冒泡法。 拿來(lái)舉個(gè)例子(整篇文章都拿這里的代碼舉例子)

每行前邊標(biāo)注的數(shù)字是為了方便大家查找行數(shù):

0. #include“stdio.h”

1. void main(void)
2. {
3. int i,j,t,a[10];
4. printf("imput 10 numbers:");
5. for(i=0;i<10;i++)
6. scanf("%d",&a[i]);
7. for(i=0;i<10;i++)
8. for(j=0;j<10;j++)
9. if(a[j]<a[j+1])
10. {
11. t=a[j];
12. a[j]=a[j+1];
13. a[j+1]=t;
14. }
15. printf("\nthe result is :\n");
16. for(j=0;j<10;j++)
17. printf("%d ",a[j]);
18. }

比如說(shuō)里邊的紅色的字:void、int、for都是關(guān)鍵字。(里邊的藍(lán)色的字:+、=、<都是運(yùn)算符。后面幾周會(huì)講到)

自己對(duì)關(guān)鍵字的理解,跟大家說(shuō)說(shuō):

第一個(gè)方面:關(guān)鍵字是C語(yǔ)言本身語(yǔ)法認(rèn)可的標(biāo)準(zhǔn)字(或者換句話說(shuō)是C語(yǔ)言提供給大家使用的標(biāo)準(zhǔn)字),而且每個(gè)關(guān)鍵字的功能的已經(jīng)規(guī)定好,不能更改。

第二個(gè)方面:關(guān)鍵字就是已被C語(yǔ)言本身使用,不能作其它用途使用的字。


--C語(yǔ)言的關(guān)鍵字總結(jié)


首先給大家整理整理關(guān)鍵字的相關(guān)內(nèi)容,雖然基本每本書(shū)都肯定會(huì)介紹,但多數(shù)都沒(méi)整理總結(jié),每個(gè)章節(jié)跳出來(lái)幾個(gè),很亂。從整體上整理總結(jié)一下可以幫助大家更好的理解C語(yǔ)言關(guān)鍵字的組成和作用。

C語(yǔ)言里共有32個(gè)關(guān)鍵字,這對(duì)于一門(mén)高級(jí)編程語(yǔ)言來(lái)說(shuō)已經(jīng)很少了,而且還有的關(guān)鍵字已經(jīng)過(guò)時(shí),所以使用的很少。

其中:

數(shù)據(jù)類型的關(guān)鍵字有12個(gè)

(char、double、enum、float、int、long、short、signed、struct、union、unsigned、void)

控制類型的關(guān)鍵字有12個(gè)

(break、case、continue、defaut、do、else、for、goto、if、return、switch、while)

儲(chǔ)存類型的關(guān)鍵字有4個(gè)

(auto、register、static、extern)

其他類型的關(guān)鍵字有4個(gè)

(const、sizef、typedef、olatile)


--如何聲明我們常用的各種變量


數(shù)據(jù)類型關(guān)鍵字是主要的作用就是聲明變量,如例子中第三行:

int i,j,t,a[10];

----int型

int是語(yǔ)言的關(guān)鍵字,代表C中最基本的一個(gè)數(shù)據(jù)類型--整數(shù)。順便說(shuō)一下,整數(shù)的英文單詞是integer,從而得到int

主要透漏了兩個(gè)消息:

1.在函數(shù)中我已經(jīng)聲明標(biāo)識(shí)符i,j,t,a[10]。表示聲明了一個(gè)名字叫i的變量、一個(gè)名字叫j的變量、一個(gè)名字叫t的變量和一個(gè)叫a[10]的數(shù)組。

2.這個(gè)名字叫i的變量、名字叫j的變量、名字叫t的變量和叫a[10]的數(shù)組。它們的是整數(shù),就是沒(méi)有小數(shù)點(diǎn)或小數(shù)部分。

聲明完這些整數(shù)型的變量,就能對(duì)他們賦值。比如例子中i=0,注意這里的“=”不是我們學(xué)的數(shù)學(xué)里的等號(hào)“等號(hào)含義:左邊等于右邊”,而C語(yǔ)言中的“=”是賦值運(yùn)算符,表示將右邊的值賦予給左邊”。

聲明的形式:

舉例:

int i,j,t,a[10];

也可以這樣分別進(jìn)行聲明,

舉例:

int i;

int j;

int t;

int a[10];

賦值的形式:

舉例:

int i;

i=0;

也可以在聲明時(shí)直接進(jìn)行賦值

舉例:

int i=0;

聲明的形式賦值的形式在聲明和賦值浮點(diǎn)變量(float)和字符變量(char)也是適用的。

----賦值后硬件如何儲(chǔ)存

如果咱們運(yùn)行了下面的兩個(gè)語(yǔ)句:

int i;

i=7;

咱們的意思是聲明了一個(gè)整數(shù)型的變量i,讓i的值為7。

那嵌入式系統(tǒng)(或計(jì)算機(jī))收到命令是如何執(zhí)行的呢,這里先跟大家明確幾個(gè)簡(jiǎn)單的概念:

位:最小的儲(chǔ)存單位稱為位(bit),可以容納兩個(gè)值(0或1)之一。就好像一個(gè)開(kāi)關(guān)的開(kāi)和關(guān)的兩種狀態(tài)。大家都說(shuō)電腦是二進(jìn)制的世界、是由0和1組成的,總是非黑即白。

字節(jié):(byte)是常用的計(jì)算機(jī)儲(chǔ)存單位。幾乎所有的機(jī)器,1個(gè)字節(jié)都是8位。由于每個(gè)位都是0或1,所以一個(gè)8位的字節(jié)包含256(2的8次方)種可能的0、1組合。

字:對(duì)于一種給定的硬件設(shè)計(jì),字(word)是自然的儲(chǔ)存單位,對(duì)于8位機(jī),一個(gè)字就是正好8位。16位機(jī)一個(gè)字就是16位,以此類推32位、64位。

舉例:

比如整數(shù)7用8位的字節(jié)儲(chǔ)存 則為:00000111為二進(jìn)制數(shù)。

用途:整數(shù)型的變量是每個(gè)程序都離不開(kāi)的吧。舉個(gè)最簡(jiǎn)單的例子,單片機(jī)流水燈實(shí)驗(yàn)(堪稱學(xué)習(xí)單片機(jī)的"hello Word! ")里控制一個(gè)燈亮多久的延遲函數(shù)里的時(shí)間參數(shù)變量就是整數(shù)型。

----float型

光有整數(shù)自然也是不夠的,還要有小數(shù)啊。咱們?cè)诩埳蠈?xiě)個(gè)整數(shù)和寫(xiě)個(gè)小數(shù)沒(méi)什么區(qū)別,只是找個(gè)地方加個(gè)小數(shù)點(diǎn)就OK了,但計(jì)算機(jī)干起這件事可就大不相同了。比如說(shuō)你付給了浮點(diǎn)型變量

float i;

i=3.1415926;

計(jì)算機(jī)會(huì)怎么儲(chǔ)存呢(圖為十進(jìn)制版本示意圖):

硬件會(huì)用科學(xué)計(jì)數(shù)法的形式將小數(shù)進(jìn)行儲(chǔ)存,但儲(chǔ)存畢竟是電腦的事,我們可以不管他。

聲明和賦值浮點(diǎn)型變量:

例子1:

float i;

i=3.1415926;//i=3.1415926

例子2:

float i=1.12e2;//1.12e2采用了科學(xué)計(jì)數(shù)法1.12乘以10的2次方

例子3:

float i=1.12e-5;

//1.12e-5采用了科學(xué)計(jì)數(shù)法1.12乘以10的-5次方

----char型

char類型的用于存儲(chǔ)字母和標(biāo)點(diǎn)符號(hào)之類的字符。但是在技術(shù)實(shí)現(xiàn)上char卻是整數(shù)類型,這是因?yàn)?strong>char類型實(shí)際儲(chǔ)存的是整數(shù)而不是字符。

char i;//聲明了一個(gè)char變量

i=‘C’;//把字符賦給變量時(shí)只能用單引號(hào)‘ ’

計(jì)算機(jī)會(huì)把字符按照ASCII碼的形式儲(chǔ)存儲(chǔ)存呢:

01000011就是67,如果在ASCII表上查詢,第67號(hào)就是大寫(xiě)字母C。

char通常定義為使用8位內(nèi)存單元,這和它儲(chǔ)存的數(shù)據(jù)時(shí)有關(guān)的。因?yàn)?span style="color: rgb(0, 176, 80); ">char儲(chǔ)存的實(shí)際是ASCII碼的編號(hào),ASCII碼的編號(hào)是0-127,只要7位就能儲(chǔ)存的下。所以給了8位那是綽綽有余。

聲明和賦值字符型變量:

char i;//聲明了一個(gè)char變量

i=‘C’;//正確

i=C;//不正確,會(huì)把C當(dāng)變量。

i=“C”;//不正確,把“C”當(dāng)成一個(gè)字符穿。

用途:字符型的變量是很常用的,因?yàn)楸磉_(dá)肯定有時(shí)要用到字母的啊。舉個(gè)最簡(jiǎn)單的例子,單片串口通信實(shí)驗(yàn)(堪稱學(xué)習(xí)單片機(jī)的"調(diào)試必備實(shí)驗(yàn)")里想電腦打印選擇結(jié)果Y或N,打印的變量就是是字符型。

----unsigned和signed關(guān)鍵字

每個(gè)簡(jiǎn)單的數(shù)據(jù)類型都可以是有符號(hào)數(shù)(signed)或無(wú)符號(hào)數(shù)(unsigned),用unsigned和signed這兩個(gè)關(guān)鍵字來(lái)進(jìn)行修飾。


常用的三種數(shù)據(jù)類型(整數(shù)型int 浮點(diǎn)型float 字符型char)就介紹完了。呃,變量的類型就寫(xiě)了這么多。下周的小文章還是寫(xiě)關(guān)鍵字的--關(guān)于常用控制語(yǔ)句的。


以下是本系列教程文章列表:歡迎大家踴躍討論,有問(wèn)題可在51黑論壇回帖提出.


C語(yǔ)言基礎(chǔ)教程(1):http://www.torrancerestoration.com/bbs/dpj-41177-1.html
C語(yǔ)言教程(2)-關(guān)鍵字 變量:http://www.torrancerestoration.com/bbs/dpj-41178-1.html
C語(yǔ)言教程(3)-控制語(yǔ)句:http://www.torrancerestoration.com/bbs/dpj-41179-1.html
C語(yǔ)言教程(4)-運(yùn)算符:http://www.torrancerestoration.com/bbs/dpj-41180-1.html
C語(yǔ)言教程(5)-函數(shù):http://www.torrancerestoration.com/bbs/dpj-41181-1.html
C語(yǔ)言教程(6)-數(shù)組與函數(shù)指針:http://www.torrancerestoration.com/bbs/dpj-41182-1.html

51單片機(jī)教程:http://www.torrancerestoration.com/bbs/mcu-xuexi-1.html
STM32教程:http://www.torrancerestoration.com/bbs/dpj-41167-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表