程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言算術運算符介紹

C語言算術運算符介紹

編輯:關於C語言
 

C語言基本算數運算符如下表:

算術運算符.png

【例3-14】除法運算符

 #include<stdio.h>

 int main(void){

 printf("\n\n%d,%d\n",20/7,-20/7);

 printf("%f,%f\n",20.0/7,-20.0/7);

 return 0;

 }

 本例中,20/7,-20/7的結果均為整型,小數全部捨去。而20.0/7和-20.0/7由於有實數參與運算,因此結果也為實型。

【例3-15】取余運算符

 #include<stdio.h>

 int main(void){

 printf("%d\n",100%3);

 return 0;

 }

 本例輸出100除以3所得的余數1。

 自增、自減運算符

 自增1運算符記為“++”,其功能是使變量的值自增1;自減1運算符記為“--”,其功能是使變量值自減1。

 自增1,自減1運算符均為單目運算,都具有右結合性。可有以下幾種形式:

 ++i:i自增1後再參與其它運算。

 --i:i自減1後再參與其它運算。

 i++:i參與運算後,i的值再自增1。

 i--:i參與運算後,i的值再自減1。

 在理解和使用上容易出錯的是i++和i--。 特別是當它們出在較復雜的表達式或語句中時,常常難於弄清,因此應仔細分析。

【例3-16】

 #include<stdio.h>

 int main(void){

 int i=8;

 printf("%d\n",++i);

 printf("%d\n",--i);

 printf("%d\n",i++);

 printf("%d\n",i--);

 printf("%d\n",-i++);

 printf("%d\n",-i--);

 return 0;

 }

 i的初值為8,第4行i加1後輸出故為9;第5行減1後輸出故為8;第6行輸出i為8之後再加1(為9);第7行輸出i為9之後再減1(為8) ;第8行輸出-8之後再加1(為9),第9行輸出-9之後再減1(為8)。

【例3-17】

 #include<stdio.h>

 int main(void){

 int i=5,j=5,p,q;

 p=(i++)+(i++)+(i++);

 q=(++j)+(++j)+(++j);

 printf("p=%d,q=%d,i=%d,j=%d",p,q,i,j);

 return 0;

 }

 這個程序中,對P=(i++)+(i++)+(i++)應理解為三個i相加,故P值為15。然後i再自增1三次相當於加3故i的最後值為8。而對於q 的值則不然,q=(++j)+(++j)+(++j)應理解為j先自增1,再參與運算,由於j自增1三次後值為8,三個8相加的和為24,j 的最後值仍為8。

 注意:經過讀者反饋,我們意識到上面的解釋是錯誤的,筆者親測,在VC6.0和MinGW下的輸出結果是:

 p=15, q=22, i=8, j=8

 對於 p=(i++)+(i++)+(i++),先計算 (i++)+(i++),因為是“後自加”,等價於 5+5,結果為10;然後計算 10+(i++),等價於 10+5,結果為 15。

 對於 q=(++j)+(++j)+(++j),先計算 (++j)+(++j),因為是“前自加”,要先計算兩次 ++j,此時 j=7,然後相加,相當於 7+7,結果為14;然後計算 14+(++j),相當於 14+8,結果為22。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved