量的變與不變

C語言編程0基礎學習歷程(2)—— 常量和變量

目錄

在前面的 Hello World !中的  “Hello World!”  就是一種數據,在C語言中屬於字符串類型。那麼C語言中數據都有哪些類型呢?C語言又是以什麼方式處理數據的呢?

實際上C語言程序處理的數據有變量和常量兩種形式。

一、常量(在程序執行過程中不可以改變的量)

如同人類社會,常量們也有自己的組織與分工。常量按類型可分爲四種:整型常量、實型常量、字符常量、字符串常量。此外,常量還分 有符號整型無符號整型 兩種:

(1)有符號常量 :一個二進制數在存儲單元中,其最高位用來表示數的正負。

(2)無符號常量 :所有二進制位都用來表示數據。(非負數)

1、整型常量(關鍵字:int)

包括數學中的正整數、負整數、0。

常用的整數常量表現形式:
(1)整型常量(int)
(3)長整型(long)
(4)短整型(short)

附:表1

類型 取值範圍
int -2147483648~2147483648
short int -32768~32767
signed int -2147483648~2147483648
unsigned int 0~4294967295
long int -2147483648~2147483647
unsigned long 0~4294967295

表2

類型 所佔字節(Turbo C 2.0編譯環境) 長度(單位:位)
char 1 8
int 2 16
short int 2 16
long int 4 32
float 4 32
double 8 64

表3

類型 所佔字節(Code::Blocks編譯環境) 長度(單位:位)
char 1 8
int 4 32
short int 2 16
long int 4 32
float 4 32
double 8 64

2、實型常量

表示範圍爲實數範圍,使用浮點數(小數點位置不固定的數)進行表示。

浮點型有兩種表示方式:1、標準小數點表示法(用來表示小數) 2、E表示法(即科學計數法,用來表示非常大和非常小的數)例如 8.33E-4=0.000833。(注:數與E/e之間無空格)

常見表現形式
(1)單精度浮點型
(2)雙精度浮點型

附 表4

類型 取值範圍
float 3.4e–38~3.4e+38
double 1.7e–308~1.7e+308

表5

類型 所佔字節 長度
float 4 32
double 8 64

3、字符常量

用一對單引號括起來的任意字符,如:‘n’、‘m’、‘X’、‘0’等。

4、字符串常量

用一對雙引號括起來的零個或多個字符,如:“”、“Hello World!”。

二、變量(其值在運行過程中可以改變的量)

變量們如同人們的公司,公司不能移動,但是公司裏的人卻可以。
定義變量的一般形式:關鍵字 變量名;

1、關鍵字
所謂關鍵字就是C語言預先規定的、具有特殊意義的單詞,它常用於聲明變量的類型。而變量類型又決定了編譯器爲其分配內存單元的字節數、數據在內存單元中的存放形式、該類型變量合法的取值範圍以及該類型變量可參與的運算種類等等。

附 表6

關鍵字 說明
auto 自動變量
break 跳出當前循環
case 開關語句分支,和switch連用
char 字符型
const 常數
continue 結束當前循環,開始下一輪循環
default 開關語句中的其他分支
do 循環,與while搭配使用
double 雙精度實型
else 條件語句否定分支,與if連用
enum 聲明枚舉類型
extern 外部聲明
float 浮點型
for 循環
goto 無條件跳轉
if 條件
int 整型
long 長整型
register 聲明寄存器變量
return 函數返回語句,可以帶參數,也可以不帶
short 短整型
signed 有符號類型
sizeof 計算數據類型長度
static 聲明靜態
struct 結構體
switch 用於開關語句
typedef 給數據類型起別名(小名)
union 聲明共用體變量
unsigned 無符號類型
void 聲明函數無返回值或無參數,聲明無類型指針
volatile 說明變量在程序執行中可以被隱含改變
while 循環條件

2、變量名

變量名就是用戶定義的標識符,好比是人的身份證,卻又有些許不同。它用於標識內存中一個具體的儲存單元,其中存放的數據稱爲變量的值(標識符區分大小寫)。

其命名遵循以下原則:
(1)、標識符只能由字母、數字和下劃線組成。
(2)、標識符必須由字母或下劃線開頭。
(3)、不允許用C關鍵字爲標識符命名。

3、變量聲明的意義

世間萬物存在皆有他的道理,變量的聲明也是如此,其存在有以下幾點作用:

(1)建立變量符號表,使編譯器可以在編譯期間發現因疏忽而寫錯的變量名;
(2)變量的數據類型指示系統分配多少內存空間;
(3)變量的數據類型指示系統如何解釋儲存空間中的值;
(4)變量的數據類型確定該變量的取值範圍;

4、變量的聲明與賦初值(實例)

#include <stdio.h>
int main ()
{
   int a=1,b=1;            //整型聲明與賦值
   float c=2,d=2;          //單精度浮點型聲明與賦值
   double e=3;             //雙精度浮點型聲明與賦值
   char ch='W';            //字符型聲明與賦值
   printf("%d\n",a+b);
   printf("%f\n",c+d);
   printf("%lf\n",e);
   printf("%c\n",ch);
   return 0;
}

其中 ‘=’ 爲賦值符號,複製形式也可寫爲 a=b=c 此類的賦值表達式,稱爲多重賦值。在計算不同類型表達式時,要考慮運算符的優先級。

附 表7

優先級 運算符 含義 運算類型 結合方向
1 ( )
[ ]
->
.
++(後綴)、- -(後綴)
圓括號、函數參數表
數據元素下標
指向結構體成員
引用結構體成員
後綴增一、後綴減一
自左向右
2
~
++(前綴)、- -(前綴)
-
*
&
(類型標識符)
sizeof
邏輯非
按位取反
增一、減一
求負
間接尋址符
取地址符
強制類型轉換符
計算字節數運算符
單目運算 自右向左
3 *
/
%
乘法運算
除法運算
整數求餘
雙目運算 自左向右
4 +
-
加法運算
減法運算
雙目運算 自左向右
5 <<、>> 左移、右移 位運算 自左向右
6 <、<=
>、>=
小於、小於等於
大於、大於等於
關係運算 自左向右
7 ==、!= 等於、不等於 關係運算 自左向右
8 & 按位與 位運算 自左向右
9 ^ 按位異或 位運算 自左向右
10 | 按位或 位運算 自左向右
11 && 邏輯與 邏輯運算 自左向右
12 || 邏輯或 邏輯運算 自左向右
13 ?: 條件運算符 三目運算符 自右向左
14 =
+=、-=、*=、/=、%=
&=、^=、|=、<<=、>>=
賦值運算符
複合的賦值運算符
雙目運算 自右向左
15 逗號運算符 順序求值運算 自左向右
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章