⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c13.htm

📁 经典c语言教程
💻 HTM
字号:
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>算术运算符和表达式</title>
<script language="javascript">
  var prePage="http://www.nec.sjtu.edu.cn/support/Course/C/c/c1/c/c1/c12.htm";
  var nextPage="c/c2/c21.htm";
</script>

<link rel="stylesheet" href="../cstyle.css" type="text/css">
<bgsound src="../voice/c13.au" loop="1">
</head>

<body background="../img/mainback.jpg" bgproperties="fixed">

<h2 align="center"><font face="楷体_GB2312">1.3 <a name="_top"></a>算术运算符和表达式</font></h2>

<hr>

<h4>1. +、-、*、/、% 运算符</h4>

<blockquote>
  <p>&nbsp;&nbsp; 和其它高级语言一样, C 语言分别用 + - * / 
  表示四则运算的加、减、乘、除运算符。假如表达式中有两个或两个以上不同的运算符,则按一定的次序来计算。这种次序被称作为优先级。在C 
  语言中, *、/ 的优先级高于 +、- 
  的。假如表达式中相同运算符有一个以上, 
  则可以从左至右或从右至左地计算它。这称作为结合性。+、-、*、/ 
  的结合性都是 L-R 的(从左至右的)。</p>
  <p>&nbsp;&nbsp;&nbsp; 算术运算符的结合性列表:</p>
  <div align="center"><center><table border="6" width="300" bgcolor="#CCFFFF"
  cellspacing="0" cellpadding="0" bordercolor="#FF9933">
    <tr>
      <td width="50%" align="center" bgcolor="#FF9933">运算符</td>
      <td width="50%" align="center" bgcolor="#FF9933">结合性</td>
    </tr>
    <tr>
      <td width="50%" align="center">- ++ --</td>
      <td width="50%" align="center">右 - 左</td>
    </tr>
    <tr>
      <td width="50%" align="center">* / %</td>
      <td width="50%" align="center">左 - 右</td>
    </tr>
    <tr>
      <td width="50%" align="center">+ -</td>
      <td width="50%" align="center">左 - 右</td>
    </tr>
    <tr>
      <td width="50%" align="center">=</td>
      <td width="50%" align="center">右 - 左</td>
    </tr>
    <tr>
      <td width="50%" align="center">op=</td>
      <td width="50%" align="center">右 - 左</td>
    </tr>
  </table>
  </center></div><p>&nbsp;&nbsp;&nbsp; </p>
  <p>&nbsp;&nbsp;&nbsp; 请看运算符结合的例子: </p>
  <p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例一&nbsp;&nbsp;&nbsp; <!-- Aftershock c131.swf 3=185 4=25 18 19 40 --> 
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c131"
  WIDTH="185" HEIGHT="25">
    <param name="movie" value="../movie/c131.swf">
    <param name="loop" value="false">
    <param name="quality" value="autohigh">
    <param name="menu" value="false">
    <param name="bgcolor" value="#E6E6E6"><embed SRC="../movie/c131.swf" swLiveConnect="FALSE" WIDTH="185" HEIGHT="25" LOOP="false"
QUALITY="autohigh" MENU="false" BGCOLOR="#E6E6E6" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </object>
<!-- EndAftershock c131.swf -->  </p>
  <p align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例二&nbsp;&nbsp;&nbsp; <!-- Aftershock c132.swf 3=185 4=25 18 19 40 --> 
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c132"
  WIDTH="185" HEIGHT="25">
    <param name="movie" value="../movie/c132.swf">
    <param name="loop" value="false">
    <param name="quality" value="autohigh">
    <param name="menu" value="false">
    <param name="bgcolor" value="#E6E6E6"><embed SRC="../movie/c132.swf" swLiveConnect="FALSE" WIDTH="185" HEIGHT="25" LOOP="false"
QUALITY="autohigh" MENU="false" BGCOLOR="#E6E6E6" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </object>
<!-- EndAftershock c132.swf -->  </p>
  <p>&nbsp;&nbsp;&nbsp; 在 C 语言中, 取模运算符为 %,表达式 x % y 是 x 除以 y 
  所得的余数。如果 x 正好能被 y 整除的话, 那么结果是 0。例:45%10 = 
  5。</p>
</blockquote>

<p> </p>

<hr>

<h4>2.“-”单目运算符</h4>

<blockquote>
  <p>&nbsp;&nbsp;&nbsp; 如果一个运算符的两个运算对象都是整型的, 
  那么结果就是整型的。 于是, 25/2 的结果不是 12.5, 是 12。请看下面的例子:</p>
  <div align="center"><center><table border="0" width="415">
    <tr>
      <td width="248">main()<br>
      { <br>
      &nbsp;&nbsp;&nbsp; int a=10, b=20, c;<br>
      &nbsp;&nbsp;&nbsp; float e=12.0, d;<br>
      &nbsp;&nbsp;&nbsp; c=-a+b;<br>
      &nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,c);<br>
      &nbsp;&nbsp;&nbsp; d=c+e;<br>
      &nbsp;&nbsp;&nbsp; printf(&quot;%f\n&quot;,d);<br>
      }</td>
      <td width="159">请仔细想一想,这个例子的输出是什么,<br>
<!-- Aftershock c133.swf 3=80 4=60 19 40 -->      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
      codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c133"
      WIDTH="80" HEIGHT="60">
        <param name="movie" value="../movie/c133.swf">
        <param name="quality" value="autohigh">
        <param name="menu" value="false">
        <param name="bgcolor" value="#E6E6E6"><embed SRC="../movie/c133.swf" swLiveConnect="FALSE" WIDTH="80" HEIGHT="60"
QUALITY="autohigh" MENU="false" BGCOLOR="#E6E6E6" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
      </object>
<!-- EndAftershock c133.swf -->      </td>
    </tr>
  </table>
  </center></div><p>&nbsp;&nbsp;&nbsp; 如果一个运算符的某个运算对象是float 
  类型的, 那么结果就是float 类型的。于是, 25.0/2*2 的结果就 不是 25, 
  而是 25.000000。</p>
  <p>&nbsp;&nbsp;&nbsp; 在上面的例子中, 我们用到了单目运算符“-”。 
  它给出了其运算对象的相反的值。</p>
</blockquote>

<p> </p>

<hr>

<h4>3.“++”、“--”运算符</h4>

<blockquote>
  <p>&nbsp;&nbsp;&nbsp; 我们常常把 1 加到一个变量上, 
  或者从一个变量中减去 1。“++”、“--”的位置会影响运算的结果。让我们看看这种情况。</p>
  <div align="center"><center><table border="5" width="529" bgcolor="#CCFFFF"
  bordercolor="#FF9933" cellspacing="0" cellpadding="0">
    <tr>
      <td width="260" align="center" bgcolor="#FF9933">语句</td>
      <td width="261" align="center" bgcolor="#FF9933">执行后变量结果</td>
    </tr>
    <tr>
      <td width="260" align="center">int Var = 10;</td>
      <td width="261" align="center">Var = 10</td>
    </tr>
    <tr>
      <td width="260" align="center">++Var;</td>
      <td width="261" align="center">Var = 11</td>
    </tr>
    <tr>
      <td width="260" align="center">Var++;</td>
      <td width="261" align="center">Var = 12</td>
    </tr>
    <tr>
      <td width="260" align="center">--Var;</td>
      <td width="261" align="center">Var = 11</td>
    </tr>
    <tr>
      <td width="260" align="center">Var--;</td>
      <td width="261" align="center">Var = 10</td>
    </tr>
    <tr>
      <td width="260" align="center">int Var1 = 0;</td>
      <td width="261" align="center">Var = 10&nbsp;&nbsp; Var1 = 0</td>
    </tr>
    <tr>
      <td width="260" align="center">Var1 = Var++;</td>
      <td width="261" align="center">Var = 11&nbsp;&nbsp; Var1 = 10</td>
    </tr>
    <tr>
      <td width="260" align="center">Var1 = ++Var;</td>
      <td width="261" align="center">Var = 12&nbsp;&nbsp; Var1 = 12</td>
    </tr>
    <tr>
      <td width="260" align="center">Var1 = Var--;</td>
      <td width="261" align="center">Var = 11&nbsp;&nbsp; Var1 = 12</td>
    </tr>
    <tr>
      <td width="260" align="center">Var1 = --Var;</td>
      <td width="261" align="center">Var = 10&nbsp;&nbsp; Var1 = 10</td>
    </tr>
  </table>
  </center></div>
</blockquote>

<p> </p>

<hr>

<h4>4.赋值运算符</h4>

<blockquote>
  <p>&nbsp;&nbsp;&nbsp; 我们常常使用 i = i + j; 这样的语句。 C 
  语言提供了一种较之更为方便的表示方法: i += j;。对于其它运算符而言, 
  也有与之类似的表示方法。</p>
  <div align="center"><center><table border="5" width="280" bgcolor="#CCFFFF"
  bordercolor="#FF9933" cellspacing="0" cellpadding="0">
    <tr>
      <td width="134" align="center" bgcolor="#FF9933">语句</td>
      <td width="138" align="center" bgcolor="#FF9933">表示</td>
    </tr>
    <tr>
      <td width="134" align="center">i += j;</td>
      <td width="138" align="center">i = i + j</td>
    </tr>
    <tr>
      <td width="134" align="center">i -= j;</td>
      <td width="138" align="center">i = i - j</td>
    </tr>
    <tr>
      <td width="134" align="center">i *= j;</td>
      <td width="138" align="center">i = i * j</td>
    </tr>
    <tr>
      <td width="134" align="center">......</td>
      <td width="138" align="center">......</td>
    </tr>
  </table>
  </center></div>
</blockquote>

<p> </p>

<hr>

<h4>5.integer和float之间的转化</h4>

<blockquote>
  <p>&nbsp;&nbsp;&nbsp; 当一个运算符具有不同类型的运算对象时, 
  必须进行类型转换。让我们来讨论一下整型和浮点型之间的转换。浮点型数 
  123.456789 转化为整型数为 123;整型数 123 转化为浮点型数为 123.000000。</p>
  <div align="center"><center><table border="6" width="565" height="0" bgcolor="#CCFFFF"
  bordercolor="#FF9933" cellspacing="0" cellpadding="0">
    <tr>
      <td width="187" rowspan="2" align="center" bgcolor="#FF9933">语句</td>
      <td width="352" colspan="4" align="center" bgcolor="#FF9933">变量的值</td>
    </tr>
    <tr>
      <td width="44" align="center" bgcolor="#FF9933">a</td>
      <td width="48" align="center" bgcolor="#FF9933">b</td>
      <td width="132" align="center" bgcolor="#FF9933">r</td>
      <td width="124" align="center" bgcolor="#FF9933">f</td>
    </tr>
    <tr>
      <td width="187" align="left">int a = 5 , b;</td>
      <td width="44" align="center">5</td>
      <td width="48" align="center">0</td>
      <td width="132" align="center">未知</td>
      <td width="124" align="center">未知</td>
    </tr>
    <tr>
      <td width="187" align="left">float r = 3.3 , f;</td>
      <td width="44" align="center">5</td>
      <td width="48" align="center">0</td>
      <td width="132" align="center">3.300000</td>
      <td width="124" align="center">0.000000</td>
    </tr>
    <tr>
      <td width="187" align="left">b = r;</td>
      <td width="44" align="center">5</td>
      <td width="48" align="center">3</td>
      <td width="132" align="center">3.300000</td>
      <td width="124" align="center">0.000000</td>
    </tr>
    <tr>
      <td width="187" align="left">f = a;</td>
      <td width="44" align="center">5</td>
      <td width="48" align="center">3</td>
      <td width="132" align="center">3.300000</td>
      <td width="124" align="center">5.000000</td>
    </tr>
    <tr>
      <td width="187" align="left">a = r + b;</td>
      <td width="44" align="center">6</td>
      <td width="48" align="center">3</td>
      <td width="132" align="center">3.300000</td>
      <td width="124" align="center">5.000000</td>
    </tr>
  </table>
  </center></div>
</blockquote>

<p align="right"> </p>

<p align="center"><a href="http://www.nec.sjtu.edu.cn/support/Course/C/c/c2/c21.htm"><img src="../img/next.gif" width="145"
height="30" alt="next.gif (3633 bytes)" border="0"></a></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -