(c++小白入)初学时常见的几个难区分的概念

(1.叙述多分支ifelse if else结构与switch结构的用法,并比较二者的异同。2.比较用地址(数组名)和指针处理数组数据的特点。3.对比函数的值传递和地址传递的异同和使用场景。4.简述全局变量、 局部变量和静态局部变量。)
(1)
同:多分支if else结构与switch结构都可以应对多种条件下对应不同结果的情况。
异:一个switch语句只能基于一个变量的值或者一个表达式来执行语句,而if else可应对不同变量或表达式来执行;但是if else在面对情况较多的情况是需进行多次if else的嵌套,要进行多次逻辑运算,而有时用switch语句可以只进行一次或两次逻辑运算便能完成,速度更快。
总的来说,if else比switch受用范围更加宽泛,但是更加复杂,逻辑运算更多。

(2)
用地址处理数组数据时,每处理完一个数据便会回到首地址对应的数据,当处理下一个 数据的时候再从首地址过去,而利用指针处理数组数据时,每处理完一个数据,指针会停留在这一个数据,相当于首地址换成了它停留的这个位置,当要处理下一个数据时便只要移动一个位置便可。
即利用指针处理大规模的数组数据时的读取速度会远远快于利用地址处理数据,但是因 为指针处理时相当于首地址发生了变化,所以难以找到之前的数据。

(3)
同:都是用于给函数传输值。
异:值传递时并不会改变原来地址中储存的值,但是只在传递时相当于重新开了一个空间来储存它,更安全但需消耗更多空间。地址传递时可能会改变原来地址中储存的值,但是这种方式不需要再开空间而是直接从原来开的空间调用,不那么安全但是节省空间。可以用const解决地址传递的安全问题。
使用场景:值传递在未使用数组或数据较少时使用;地址传递在使用数组传值并且数据较多时使用。

(4)
全局变量:定义在所有函数之外的能在整个函数中都被调用的变量,其有缺省值且为0。
局部变量:只能在其作用域内调用,出了它的大括号就不能被调用,并且当一个函数结束执行后,所有局部变量都会被自动销毁。
静态局部变量:只能在其作用域内调用,出了它的大括号就不能被调用,但在程序的整个生命周期中,其会一直存在于内存中。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值