第46回
对于switch case语句,当没有break时,如下图,当取值为E时,后面的e会直接掠过,直接执行++eCnt
case 后面的数必须是整数!
注意:如下图1,case 1 的语句块中不能定义变量,要在case中定义变量的话只能在default中定义变量(如图2)(如果没有default,则可以在最后一个case中定义变量),如果一定要在前面的case中定义变量,则要用大括号括起来(图3),但这种情况下定义的变量只能在这个大括号{}内使用
第47回
for循环语句头 或 for循环语句块中定义的变量都只能在for循环这个语句块中生效,出了这个语句块,这些变量就没有了
第48回
如下图,当用 ctrl + z 来结束cin时,后续的cin将不被识别,如果要使后续的cin被识别,则在ctrl+z操作后,要加上 cin.clear()来恢复对cin的识别
第49回
第50回
注意:当有循环嵌套时,一个break只能打断一层循环
continue只是跳过1次循环,直接跳到下一次循环
第51回
第52回
第53回
第54回
函数可以返回指向函数的指针 或 指向数组的指针
第55回
普通形参(非引用形参)
指针形参(非引用形参)
引用形参
注意:非引用形参的传递其本质就是copy,函数运行时,处理的是实参的copy,原来的实参并没有传进去进行处理
在下图中,结果输出是 1 1
xx
但是函数的参数如果是 引用形参,那么传进去的就是实参的本身
但是要注意:如下图所示,指针形参也是非引用形参,传入的是地址的拷贝,但也可以改变实参(地址)所指向的内容!
如下图,输出结果为:加之前的b等于2,加之后的b等于4
注意:对于const形参,我们既可以传入const实参,也可以传入 非const实参(如下图)
注意:对于 非const形参,我们既可以传入 非const实参,也可以传入const实参
那么,const形参的作用是什么呢?答:const形参就表示在函数中不能修改这个const形参的值,如下图的代码是不可以的
注意:下图中,红框中表示 这个形参指针ip 指向的是一个const,所以不能对这个const常量(*ip)进行修改,所以下图的代码是不行的
注意区别于前面,如下图示,形参是非const指针,那么实参就必须是非const指针,所以第3个红框不行,
注意:形参是const指针,那么实参是非const指针 或 const 指针都可以,所以下图正确
总结:对于非引用形参,我们分为2中: 1)普通形参 2)指针形参
对于1)普通形参:不管形参是不是const,传入进去的实参没有限制(是不是const都可以)
对于2) 指针形参:当形参是 非const 指针时,则实参必须也是 非const 指针, 而形参是const指针时,则对传入的实参无限制
其实就是遵循的指针的初始化规则:
即:可以将指向const对象的指针(这里对应的就是形参)初始化为指向非const对象的指针(这里对应的就是实参)
不能将指向非const对象的指针(这里对应的就是形参)初始化为指向const对象的指针(这里对应的就是实参)!!!
所谓函数重载,其实就是同一个c文件中,函数名相同,但参数类型不一致(如下图),这是可以的
但注意下面这种情况是不可以的,因为C++把下面的非const的情形和const的情形等同是一样的,