您的位置:首页 > 编程语言 > C语言/C++

C++疑惑解答总结(二)

2019-08-15 16:34 218 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_42412973/article/details/99641437

一、C++为什么不叫++C?

我们知道自增、自减运算符有前缀和后缀两种形式

①int y=a++;

②int y=++a;

第①种情况下:a先将值赋给y,再执行加1操作(首先复制一个副本,将其加1,然后将复制的副本返回)

第②种情况下:a值加1,然后返回结果

对于内置类型,采用哪种格式不会有差别;但对于用户定义的类型,如果由用户定义的递增和递减运算符,则前缀格式的效率更高

C++为什么不叫++C?

一位博主这样写道(转自https://www.geek-share.com/detail/2539966400.html):

++与*(指针)的位置关系

前缀递增、点缀递减和*的优先级相同,以从右到左的方式结合;后缀递增和后缀递减的优先级相同,但比*的优先级高,这两个运算符以从左到右的方式进行结合。

举个例子:

double arr[5]={1.0,2.0,3.0,4.0,5.0};

double *pt=arr;

1、*++pt;这个表示arr[1];(两运算符优先级相同,++先运算,因为++在右边)

2、++*pt;这个表示arr[0]+=1;(同理)

3、(*pt)++;这个表示arr[0]++;(先运算括号里的)

4、*pt++;这个表示arr[0],该语句执行完毕后,pt的值将为arr[1]的地址;(后缀运算符的优先级更高,所以++先运算,后*)

二、条件运算符

C++中唯一一个需要3个操作数的运算符

该运算符的通用格式为:

expression1?expression2:expression3

如果expression1为true,则整个条件表达式的值为expression2的值,否则为expression3的值

三、switch语句

C++中的switch语句的格式为:

switch(){

case '':操作

default:操作

}

四、break和continue语句

可以在switch语句或任何循环中使用break语句,使程序跳到switch或循环后面的语句处执行。continue语句用于循环中,让程序跳过循环体中余下的代码,并开始新一轮循环。

continue在一些情境的循环编写下十分有用,一定要善用!

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: