官术网_书友最值得收藏!

2.5 賦值運算符和賦值表達式

在C語言中,賦值號“=”是一個運算符,稱為賦值運算符,由賦值運算符組成的表達式稱為賦值表達式,其形式如下:

  變量名=表達式

賦值號的左邊必須是某一個變量名,賦值號的右邊必須是C語言中的合法表達式。賦值運算的功能是先求出右邊表達式的值,然后把這個值賦給賦值號左邊的變量,確切地說,是把該數據存入以該變量名為標識的存儲單元中。

例如,有如下程序段:

int a,b;    /*定義兩個整型變量*/

a=5;    /*把常量5賦給變量a*/

b=a+3;    /*把a中的值加上常數3,然后賦給變量b,a中的值不變*/

在程序中可以多次給某一個變量賦值,每賦值一次,其相應的存儲單元中的數據就被更新一次,存儲單元中的當前數據就是最后一次所賦的那個數據。

看下面的程序段:

int a=5,b;    /*定義兩個整型變量,同時給變量a賦初值為5,而變量b目前的值為不確定數*/

b=a+3;    /*把a中的值加上常數3,然后賦值給變量b,b中的值為8,而a中的值不變*/

【例2.7】  變量的賦初值與變量的賦值關系舉例。

#include<stdio.h>

void main()

{ int a=5,b=5,c,d;     /*給變量a和b同時賦初值為5,而變量c和d目前的值為隨機整數*/

  c=6;     /*把常量6賦給變量c,這時變量c中的值為6*/

  d=6;     /*把常量6賦給變量d,這時變量d中的值為6*/

 printf("%d,%d\,%d,%d\n",a,b,c,d); /*輸出變量a,b,c,d的值*/

}

輸出結果:

 5,5,6,6

使用賦值表達式要注意以下幾個方面:

①賦值運算符不是數學中的“等于號”,而是進行“賦予”操作。如:a=5+3 應讀作“先進行5+3運算,然后把運算結果賦給變量a”。

②賦值運算符的左邊只能是變量,不能是常量或表達式,而賦值運算符的右邊可以是常量或表達式。如:a+3=5,a+b=c等都是不合法的賦值表達式。

③賦值表達式x=y的作用是:將變量y所代表的存儲單元中的內容賦給變量x所代表的存儲單元,x中原有的數據被替換掉,而變量y所代表的存儲單元中的內容不變。簡單地說,就是把變量y的值賦給變量x,變量y的值不變,而變量x原有的值被y的值所替換。

④可以進行連續的賦值操作,但不可以進行連續的賦初值操作。a=b=5是合法的賦值表達式,由于賦值運算符的結合方向是自右向左,因此這個表達式等價于a=(b=5),即先將5賦給變量b,再把b的值賦給變量a。

⑤賦值表達式n=n+1的含義是:取出變量n中的值加1再放回到變量n中,即使變量n中的值增1。

⑥當賦值運算符兩邊的類型不一致時,要進行類型自動轉換。

a.實型數據(float或double)賦給整型變量時,會自動舍去小數部分,但不進行四舍五入。例如,int x=3.67,則x的值為3。

b.整型數據賦給實型變量時,數值不變,以實數形式存儲到變量中。例如,float x=2,則x=2.0。

c.字符型賦予整型,由于字符型為一個字節,故將字符的ASCII碼值放到整型量的低八位中,其余位補0。

d.整型賦予字符型,只把低八位賦予字符量,其余位丟失。

主站蜘蛛池模板: 荔浦县| 盐亭县| 石楼县| 弋阳县| 嫩江县| 华宁县| 阳曲县| 金乡县| 山东| 驻马店市| 故城县| 上栗县| 南华县| 黔南| 洛浦县| 龙口市| 临桂县| 即墨市| 绥中县| 衢州市| 舞钢市| 金乡县| 石楼县| 专栏| 石柱| 汽车| 双江| 班戈县| 英山县| 即墨市| 镇坪县| 府谷县| 长岛县| 南皮县| 工布江达县| 资讯 | 松原市| 江城| 广东省| 保德县| 沂南县|