運算符(也叫操作符):運算符是一個表示特定的數學或邏輯操作的符號。如'+'號,表示了一個相加運算;'&&'號表示了一個邏輯‘與’的運算。由運算符把需要進行運算的各個量(常量或變量)連接起來組成一個表達式。
下面要講的是標準的運算符,在C++中還有另外的一些運算符。
要把表中的運算符仔細的分類是不容易的,因為同一個運算符,在不同的地方其含義是不同的。如*運算符,當作為乘運算時是雙目操作符(所謂雙目操作符,即運算時需要二個操作數),如3*6,那么3與6總共是二個操作數。當作為取值運算時就是單目操作符(所謂單目操作符是只需要一個操作數)如對一個數求反:!a,這里只有一個操作數a。
要記住運算符的二個特點,一個是運算符的操作對象,另一個就是運算符的優先級別。其中運算符的優先級別是最不容易搞清楚和最容易出錯的地方。
在講運算符之前講一下“表達式”的概念:所謂表達式,就是用運算符把各個操作數連接成符合C語法規則的進行運算的式子。這里說的“符合C語法的規則”也很重要。如 a+b+5就是一個用算術運算符連接起來的表達式。
1、算術運算符:+、-、*、/、%
1)+、-、*、/ 分別是相加、相減、相乘、相除
2)% 求二個數運算的模。所謂求模就是求二個數相除后的余數。例:25/3的余數是1,可以說25%3的模是1。要注意的是求模運算時二個操作數必須是整數。如果求25.3/3.1這樣是不能運算的。
下面寫一個例子:
#include<stdio.h> /*程序中要用到輸入輸出庫函數,所以包含了stdio.h*/
void main()
{
int a=10,b=20,c=30; /*定義了3個整型變量,并同時進行了初始化賦值*/
a=a*b+c; /*a*b+c組成了一個算術表達式,運算后的結果為230并把值*/
/*賦給變量a*/
printf("%d",a); /*以整型格式輸出變量a的值。這里輸出230*/
a=a%b; /*進行求模運算。因為沒有余數,最后的模為0*/
printf("%d",a); /*輸出變量a的值。這里輸出0*/
}
下面是一個要考慮運算符優先級的例子:
#include<stdio.h>
void main()
{
int a=10,b=20,c=30;
a=c-a*b; /*這里就要考慮運算符優先級,*運算符的優先級比-運算符*/
/*的高,所以先進行乘運算。這里最后結果為-170*/
}
原文轉自:http://www.anti-gravitydesign.com