c++ primer plus 之for循环

本文详细介绍了C++中的for循环结构、递增与递减运算符的使用方法、字符串比较技巧等核心内容,并提供了丰富的示例代码帮助理解。

1:for循环组成部分

①设置初始值;

②执行测试,看看循环是否应当继续进行;

③执行循环;

④更新用于测试的值;

例如,

for (i=0;i<10;i++)
{...};
2:c++常用的方式是,在for和括号之间加上空格,而省略函数名与括号之间的空格,对于其他控制语句(如if和while),处理方式相同。另外,缩进for循环体,使它看起来更显著。

3:递增运算符(++)和递减运算符(--)

例如,

a=20;b=20;

则a++ =20;++b=21;

则a=21;b=21;

a++表示先使用当前值,然后加1,++b表示先加1,然后使用新值计算。

4:递增运算符(++)和递减运算符(--)和指针

例如,

double arr[5]={21.5,32.8,23.4,45.2,37.4};
double *pt =arr;
++pt;
前缀递增、前缀递减和解除引用运算符的优先级相同,以从右到左的方式进行结合。后缀递增和递减的优先级相同,但比前缀运算符的优先级高,这两个运算符以从左到右的方式进行结合。例如,

*++pt表示先将++用于pt(因为++位于*右边),然后将*用于被递增后的pt;

*ppt++表示先将++用于pt,然后将*用于被递增pt;
5:组合赋值运算符

+=,-=,*=,/=,%=,将左运算符和右运算符的运算结果赋给左运算符。

6:复合语句

花括号来构造一条复合语句,代码块由一个花括号和多条语句组成,被视为一条语句 。

特性:

①如果在语句块定义一个新的变量,则仅当程序执行该语句块时,该变量才存在。执行完此语句块,变量被释放,此变量只在该语句块可用。

②如果在此语句块中定义了一个新变量,并且在外部语句中也定义了一个相同的旧变量,则在语句块中,新变量隐藏旧变量,语句块结束,才显示旧变量。

7:逗号运算符

特性:

①允许将两个表达式放到c++句法只允许放一个表达式的地方,中间逗号分隔;

例如;++j,--i;

②首先先计算第一个表达式,然后计算第二个表达式,逗号表达式的值是第二部分的值;

例如,catalog =17 , 24;则catalog的值为24.

③在所有运算符中,逗号表达式的优先级最低。

8:字符串比较

①c-风格字符串

假设要知道字符数组中的字符串是不是mate。如果word是数组名,下面的测试可能并不像我们想象的那样工作:

word = "mate" ;
数组名是一个地址,同样,用引号括起来的字符串也是地址。因此,上面关系表达式不是判断两个字符串是否相同,而是查看他们是否存储在相同的地址。

由于c++将c-风格字符串视为地址,因此如果用关系运算符来比较他们,可能不会得到满意的结果,所以使用c-风格字符串库中的strcmp()函数用来比较。该函数接收两个字符串地址为参数,意味着可以是指针、字符串常量、字符串数组名。如果两个字符串相同,该函数返回0;如果第一个字符串按子母顺序排在第二个字符串之前,则函数返回一个负数值;如果如果第一个字符串按子母顺序排在第二个字符串之后,则函数返回一个正数值。

例如,使用ASCII码时,所有大写字母的编码都比小写字母小,所以按顺序排列大写字母将位于小写字母之前。因此,字符串“Zoo”在字符串“aviary”之前。

还有,虽然不能用关系运算符来比较字符串,但却可以用他们来比较字符,因为字符实际上是整形。例如,

for (ch='a';ch<='z';ch++) ;
cout<<ch;
②比较string类字符串

可以使用关系运算符进行比较,使用时,至少有一个操作数为string对象,另一个操作数可以是string对象,也可以是c-风格字符。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值