C++ 笔试题整理(三)

1 篇文章 0 订阅
1、float a,b,c; (a+b)+c == (b+a)+c, (a+c)+b == (a+b)+c 是否相等,为什么?

2、运算符优先级:后置++、--大于前置++、--大于*。
          int a, b, c, d;
         a = 10;
         b = a++;
         c = ++a;
         d = 10 * a++;
则:a = 13,   b=10,   c=12,   d=120.
3、引用,指针的区别
        1、引用定义时必须赋初值,指针可以不。
        2、指针可以为空值,引用不行。
        3、指针和引用的自增不同。
        4、sizeof指针和引用不同。    
        5、指针赋值后可以改变,引用不可以,只能从一而终。

4、常量指针、指针常量。
        const在*号的左侧,那么就是常量指针,该指针指向一个常量,不可以通过*p修改该常量的值,但是p可以指向另一个常量
        const在*号的右侧,那么就是指针常量,该指针本身是一个常量,可以通过*p修改该常量的值,但是p不可以指向别的常量

5、main执行前执行的代码:
        1、初始化static静态和globle全局变量。


6、i++,++i的区别:
    1、i++返回原来的值,而++i返回+1后的值。
    2、i++不能作为左值,而++i可以。 原因:   
// 前缀形式:
int & int :: operator ++ ()                              // 这里返回的是一个引用形式,就是说函数返回值也可以作为一个左值使用
{                                                               // 函数本身无参,意味着是在自身空间内增加1的
       * this += 1 ; // 增加 return * this ;         // 取回值
}
//后缀形式 :
const int int :: operator ++ ( int )                  // 函数返回值是一个非左值型的,与前缀形式的差别所在。
{                                                               // 函数带参,说明有另外的空间开辟
       int oldValue = * this ;                          // 取回值
      ++ ( * this );                                           // 增加
      return oldValue ;                                // 返回被取回的值
}









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值