第46回---第55回

本文深入探讨C++中的switch-case语句特性,for循环变量作用域,输入流控制,循环控制语句的细节,以及函数参数传递机制,包括普通形参、指针形参和引用形参的区别与应用,特别关注const限定符的影响。此外,还讲解了函数如何返回复杂类型的指针,并解析函数重载的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第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的情形等同是一样的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值