设为首页 加入收藏

TOP

3.4 运算和运算符
2013-10-07 12:55:54 来源: 作者: 【 】 浏览:76
Tags:3.4 运算

3.4 运算和运算符

除了指定什么值可以存储在一个变量中之外, 变量类型还决定了我可以对它进行什么操作和它们表示什么。例如:

 

通过“错误”, 我们认识到编译器拒绝程序对字符串进行减。编译器确切地知道哪种操作可以应用于哪种变量, 这样可以防止很多错误的发生。但是, 编译器不知道哪种操作对你有用, 因此它很高兴接受合法的操作, 即使它们在你看来可能是荒谬的。例如:

很明显, 你的年龄不能是一个负数, 但是没有人会告诉编译器, 因此它会为这个定义生成代码。

下表给出了一些常见的和有用的类型可以使用的操作符:

 

空白表示一个操作符不能直接用于一种类型(尽管可能有间接使用这种操作符的方式, 见3.7节)。我们将在后面的内容中解释这些操作符。这里的关键是有很多有用的操作符, 它们对相似的类型通常是相同的。

我们来介绍一个涉及浮点数的例子:

 

很明显, 常见的数学操作有常见的表示法和含义, 这点和我们在小学学到的知识一样。很自然, 并不是我们想对一个浮点数做的任何事(例如得到它的平方根)都有相应的操作符。很多操作都表示为命名函数的形式。在这种情况下, 我们使用标准库中的sqrt()来得到n的平方根: sqrt(n)。这种表示法与数学中相似。我们将会逐渐学习使用函数, 并在4.5节和8.5节中讨论它们的细节。

试一试运行这个小程序。然后, 修改它以读取一个int型, 而不是一个double型。注意, sqrt()不是针对int型定义的, 因此将n赋值给一个double型并执行sqrt()。另外, “练习”一些其他操作。注意, 对于int型来说, /是整除, %是余数(模), 因此5/2等于2(而不是2.5或3), 5%2等于1。对整数*、 /和%的定义, 保证两个正整数a和b可以得到a/b*a+a%b==a。

字符串拥有更少的操作符, 但在第23章中将看到足够多的命名操作。但是, 所支持的操作符都可以按常规方式使用。例如:

 

字符串+意味着连接, 也就是说, 当s1和s2是字符串时, s1+s2也是字符串, 包含来自s1的字符后接来自s2的多个字符。例如, 如果s1的值为"Hello", s2的值为"World", 那么s1+s2的值为"HelloWorld"。字符串比较操作特别有用:

在这里, 我们使用if语句来根据条件选择动作, 该语句将在4.4.4.1节中详细介绍。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.5.7 与C++程序设计有何联系 下一篇更好的设计面向对象的C++语言

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: