C Primer Plus学习 六 基本运算符
来源:互联网 发布:java nanotime 单位 编辑:程序博客网 时间:2024/06/06 03:26
C使用运算符(operator)来代表算术运算,现在我们看一下用于基本算术运算的运算符: =、+、-、*,以及/ (C没有指数运算符。)。
赋值运算符:=
在C里,符号=不表示“相等”,而是一个赋值运算符。下面的语句将值2002赋给名字为bmw的变量:bmw = 2002;,符号=的左边是一个变量名,右边是赋给该变量的值。
/* golf, c --高尔夫锦标赛记分卡*/
#include <stdi〇.h> int main (void)
{
int jane, tarzan, cheeta:
cheeta = tarzan = jane = 68;
printf (" cheeta tarzan jane\n*):
printf ("First round score %4d %8d %8d\n", cheeta. tarzan, jane);
return 0;
}
许多程序语言将在本程序里的三重陚值处卡壳,但是c可以顺利接受它。陚值是从右到左进行的。首 先jane得到值68,然后tarzan得到值68,最后cheeta得到值68。
加法运算符:+
“加法运算符”(addition operator)使得在它两侧的值被加到一起。
例如,语句:
printf ("% d", 4 + 20);
将打印数24而不是打印表达式:
4 + 20
被加的值(操作数)可以是变童也可以是常量。所以语句:
income = salary + bribes;
使计算机先査找右边的两个变釐的值,将它们加起来,最后将这个和賦给变量income。
减法运算符:-
“减法运算符”(subtraction operator)从它前面的数中减去它后面的数。
例如,下面的语句将值200.0 陚给 takehome:
takehome = 224.00 - 24.00;
+和-运算符被称为二元(binary)或双值(dyadic)运算符,这表示它们需要两个操作数。
乘法运算符:*
乘法由符号*表示。语句:
cm = 2.54 * inch:
用2.54乘以变量inch,然后将结果陚给cm。
除法运算符:/
C使用符号/来表示除法。/左边的值被它右边的值除。例如,下面的语句把值4.0赋给four:
four = 12.0/ 3.0:
整型数的除法运算和浮点型数的除法运算有很大的不同。浮点类型的除法运算得出--个浮点数结果, 而整数除法运算则产生一个整数结果。整数不能有小数部分,这使得用3去除5很让人头痛,因为结果有 小数部分。在C中,整数除法结果的小数部分都被丢弃。这个过程被称为截尾(truncation)。
运算符的优先级
考虑下面的代码行:
butter = 25.0 + 60.0 * n / SCALE:
执行各种操作的顺序很重要,所以C需要关于执行顺序的明确规则。C通过建立-个运算符的 优先顺序来满足上述需求。将一个优先级赋予每个运算符。像在普通的算术运算中那样,乘法和除法具 有比加法和减法更高的优先级,所以先执行乘法和除法运算。如果两个运算符有相同的优先级将会发屮什 么?如果它们共享--个操作数,会根据它们在语句里出现的顺序执行它们。对于大多数的运算符,该顺序 是从左到右的(=运算符是这个规则的例外)。
如何让加法在除法之前执行?您可以像下面这样:
flour = (25.0 + 60.0 * n) / SCALE:
最先被执行的是圆括号中包含的部分。在圆括号内部,运算按正常的规则进行。在本例中,先执行乘 法运算,然后是加法。圆括号内的表达式就是如此完成的。现在可以用SCALE去除这个结果了。
/* sh〇es2.c --计算多个鞋尺码对应的英寸长度T*/
#include <stdio.h>
#define ADJRST 7.64
#define SCALE 0.325
#define SQUSRES 64 /*棋盘上的方格数*/
#define CROP 1E15 /*以粒计的美国小麦产量*/
#define SEC_PER_MIN 60 // 每分钟的秒数
int main(void)
{
double shoe,foot;
double current,total;
int count=1;
int sec, min ,left;
printf("Shoe size (men's) foot length\n");
shoe=3.0;
while (shoe<18.5)/* whiie 循环汗始 */
{ /*代码块幵始 */
foot=SCALE*shoe+ADJRST;
printf("%10.1f %15.2f inches\n",shoe,foot);
shoe=shoe+1.0;
} /* ”代码块结束 */
printf ("If the shoe fits, wear it.\n");
printf ("...............................\n");
/* wheat, c --指数增长 */
printf ("square grains total ");
printf ("fraction of \n");
printf (" added grain ");
printf ("US total\n");
total=current=1.0; /* 开始时是 1 粒 */
printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);
while (count<SQUSRES)
{
count=count+1;
current=2.0*current; /* 下个方格的粒数加倍*/
total=total+current;/*新总数 */
printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);
}
printf("that'all\n");
printf ("...............................\n");
// min_sec.c =把而换为分钟和秒
printf ("Convert seconds to minutes and seconds!\n");
printf ("Enter the number of seconds (<=0 to quit) : 读入秒数\n");
scanf ("%d", &sec); // 读入秒数
while(sec>0)
{
min=sec/SEC_PER_MIN;//截得到的分钟
left=sec%SEC_PER_MIN;//截得到的秒数
printf ( "%d seconds is %d minuter. %d seconds. \n",sec,min,left );
printf (" Enter next value (<=0 to quit) :\n");
scanf ("%d", &sec); // 读入秒数
}
printf("done!");
return 0;
}
- C Primer Plus学习 六 基本运算符
- C Primer Plus-运算符
- 《C++Primer Plus》学习笔记(六)
- C Primer Plus(第五版)学习(六)
- C Primer Plus学习
- C Primer Plus学习笔记----第五章运算符、表达式和语句
- C Primer Plus-C语言运算优先级
- C primer plus 5 ch5 运算符、表达式和语句
- C Primer Plus 第五章:运算符、表达式和语句
- c++primer plus字符库函数和条件运算符
- 第一站NO.2--《C Primer Plus(第五版)中文版》第五章_5.2 基本运算符
- c++primer plus阅读笔记(六)
- C++ Primer Plus学习笔记之运算符重载
- C++Primer Plus学习笔记
- 《C Primer Plus》学习笔记
- 《C Primer Plus》学习笔记
- C Primer Plus 学习笔记
- C Primer Plus学习 一
- 【HDU 5499】+ sort 结构体排序
- JVM 垃圾回收机制主要原理
- PowerDesigner导出表到word
- 有关makefile
- poj1845Sumdiv+约数和定理
- C Primer Plus学习 六 基本运算符
- iOS开发笔记之五十一——跳转到app store应用下载评分
- Spring in action--Part1-Core Spring
- 乱码之MyEclipse控制台
- 程序员笔试题收集汇总(二)
- android debug set screen rotation
- 谷歌的高级搜索
- 同一问题的递归与动态规划解法
- appWidget小应用----简易音乐播放器