C++疑惑解答总结(二)
一、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在一些情境的循环编写下十分有用,一定要善用!
- [Thinking in C++]C02:Ex04 解答及疑惑
- 钱能c++以 局部函数 引出 函数调用机制中疑惑解答
- C/C++ 如何判断闰年,对判断闰年条件的疑惑解答
- c c++中 #define用法总结
- 面试篇之~ c++ 基础知识简单总结 (一)
- C++ 牛客网做题笔记【800题总结】
- 后端c++知识点总结
- c++细节知识总结
- C++中const用法总结
- 对C++中继承的一些总结
- JNI学习总结——C/C++访问Java类的属性与方法
- 总结C++中的所有强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- C++Primer第五版 第3章 字符串、向量和数组(练习解答)
- C++总结(5)————C++中重载、重写(覆盖)和隐藏的区别
- C/C++中const用法总结
- c++ extern总结
- linux c/c++编程工具总结(1)
- C++中的引用变量用法总结
- paip.java c# .net php python调用c++ c dll so windows api 总结
- 周总结之视频去重用到的一些c++知识点