運算符和表達式

運算符和表達式

運算符和表達式

1 表達式

表達式分為簡單表達式和複雜表達式
#include <stdio.h>

int main(void)
{
int iNumber1,iNumber2,iNumber3;/*申明變量*/

iNumber1 = 3;
iNumber2 = 7;/*為變量賦初始值*/

printf("the first number is %d\\n",iNumber1);
printf("the second number is %d\\n",iNumber2);

iNumber3 = iNumber1+10;

printf("the first number add 10 is %d\\n",iNumber3); /*打印iNumber3的值*/

iNumber3 = iNumber1 +iNumber2;
printf("the result number of the first add the second is:%d\\n",iNumber3);

return 0;
}
/<stdio.h>

2.賦值運算符與賦值表達式

2.1 變量賦初值

 變量賦值為常數 類型 變量名 = 常數char cChar = 'A';
int iFirst =100;
float fPlace =1525.121;
賦值表達式為變量賦初值 類型 變量名 = 表達式int iAmount =1+2;

float fPrice = fBase +Day*3;

2.2 自動類型轉換

float i =10,1f;
int j =i;//提示會損失精度的報警

2.3 強制類型轉換

(類型名)(表達式)

float i=10.1f;
int j = (int)i;/*進行強制類型轉換*/
#include <stdio.h>
//強制類型轉換
int main(void)
{
char cChar;
short int iShort;
int iInt;
float fFloat =70000;
cChar =(char)fFloat;
iShort = (short)fFloat;
iInt =(int)fFloat;
printf("the char is %c\\n",cChar);
printf("the long is %ld\\n",iShort);
printf("the int is %d\\n",iInt);
printf("the float is %f\\n",fFloat);

return 0;
}

/*
the char is p
the long is 4464
the int is 70000
the float is 70000.000000
Press any key to continue


*/
/<stdio.h>

3.算術運算符與算術表達式

C語言中有兩個單目運算符、5個雙目運算符。

3.1 算術運算符

符號功能符號功能+單目正%取模-單目負+加法*乘法-減法/除法

3.2 算術表達式

在表達式中使用算術運算符,則將表達式稱為算術表達式。
#include <stdio.h>
int main(void)
{
int iCelsius,iFahrenheit;/*申明兩個變量*/
printf("Please enter temperature :\\n");
scanf("%d",&iFahrenheit);
iCelsius = 5*(iFahrenheit-32)/9;

printf("Temperature is:");
printf("%d",iCelsius);

printf(" degrees Celsius\\n");

return 0;
}
/<stdio.h>

3.3 優先級和結合性

在表達式求值時,先按照運算符的優先級別高低次序指向,算術運算符中* / %的優先級別高於+-的級別。

3.4 自增/自減運算符

算術運算符的優先級相同時,結合放心為“自左向右”。
#include <stdio.h>
int main(void)
{
int iNumber1,iNumber2,iNumber3,iResult=0;
iNumber1 =20;
iNumber2 =5;
iNumber3 =2;
iResult = iNumber1+iNumber2-iNumber3;//加法 減法
printf("the result is %d\\n",iResult);
iResult = iNumber1-iNumber2-iNumber3;//減法 加法
printf("the result is %d\\n",iResult);
iResult = iNumber1+iNumber2*iNumber3;//加法 乘法
printf("the result is %d\\n",iResult);
iResult = iNumber1/iNumber2*iNumber3;//除法 乘法
printf("the result is %d\\n",iResult);
}
/<stdio.h>

4.關係運算符與關係表達式

在C語言中海油兩個特殊的運算符,即自增運算符 “++”和自減運算符"--"。 

--Counter; //前自減
Grade--;//後自減
++Age;//前自加
Height++;//後自加

4.1 關係運算符

符號功能符號功能>大於<=小於等於>=大於等於==等於

4.2 關係表達式

關係運算符用於對兩個表達式的值進行比較,返回一個真值或者假值。返回的值是真還是假取決於表達式中的值和所用的運算符。

4.3 優先級與結合性

關係運算符的結合性都是自左向右的。使用關係運算符時常常會判斷兩個表達式的關係。
#include <stdio.h>
int main(void)
{
int iChinese,iEnglish;
printf("Enter Chinese score: ");
scanf("%d",&iChinese);

printf("Enter English score: ");
scanf("%d",&iEnglish);

if(iChinese>iEnglish)
{
printf("Chinese is better than English\\n");
}
if(iChinese<ienglish> {
printf("English is better than Chinese\\n");
}
if(iChinese == iEnglish)
{
printf("Chinese equal English\\n");

}

return 0;
}
/<ienglish>/<stdio.h>

5.邏輯運算符與邏輯表達式

邏輯運算符

符號功能&&邏輯與||邏輯或!單目邏輯非

"&&"和 "||"是雙目運算符,他們要求有兩個操作數,結合方向至左向右。"!"是單目運算符,要求有一個操作數。
#include <stdio.h>
int main(void)
{
int iNumber1,iNumber2;
iNumber1=0;
iNumber2=0;
printf("the 1 is true,0 is false!\\n");
printf("5< iNumber1&& iNumber2 is %d\\n",5<inumber1> printf("5< iNumber1||iNumber2 is %d\\n",5<inumber1> iNumber2=!iNumber1;
printf("iNumber2 is %d\\n",iNumber2);
return 0;

}
/<inumber1>/<inumber1>/<stdio.h>

6.位邏輯運算符與位邏輯表達式

位邏輯運算符包括位邏輯與、位邏輯或、位邏輯非、取補。

符號功能&位邏輯與|位邏輯或^位邏輯非~取補

7.逗號運算符與逗號表達式

在C預言中,可以用逗號將多個表達式分隔開來。其中,用逗號分隔的表達式被分別計算,並且整個表達式的值是最後一個表達式的值。
#include <stdio.h>
int main(void)
{
int iValue1,iValue2,iValue3,iResult;
iValue1=10;
iValue2=54;
iValue3=26;
iResult=0;
iResult = iValue1++,--iValue2,iValue3+4;
printf("the result is %d\\n",iResult);//結果是10
iResult = (iValue1++,--iValue2,iValue3+4);
printf("the result is %d\\n",iResult);//結果是30
return 0;
}
/<stdio.h>

8.複合賦值運算符

複合賦值是C語言中獨有的,實際這種操作是一種縮寫形式。

例如

  • 為了簡化程序
  • 為了提高編譯效率
value+=3;//value=value+3;
value-=3;//value=value-3;
value*=3;//value=value*3;
value/=3;//value=value/3;
#include <stdio.h>
int main(void)
{

int iTotal,iValue,iDetail;
iTotal=100;
iValue=50;
iDetail=5;
iValue*=iDetail;
iTotal+=iValue;
printf("iValue = %d iTotal = %d\\n",iValue,iTotal);
return 0;

}
/<stdio.h>


分享到:


相關文章: