C/C++面试常见问题剖析

问题一:大小端存储判断
分析:小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位;大端模式:内存的低位存数据的高位,内存的高地址存数据的低位。 低高高低。详细可见http://blog.chinaunix.net/uid-27033491-id-3233436.html
判断程序:
通过获取a的地址,并用强制类型转换获取a的低地址中存的值。

#include <iostream>
using namespace std;
int main()
{
  int a = 0x22221111;
  char *p = (char *)(&a);
  if (*p == 0x11) 
     cout<<"小端存储!"<<endl;
  else if (*p == 0x22) 
     cout<<"大端存储!"<<endl;
 else 
     cout<<"其他存储方式!"<<endl;
system("pause");
return 0;
}

将a的地址输出,并在内存中查找,得到的信息如下:
这里写图片描述
问题二:const关键字
const关键字用于修饰变量、函数参数、函数返回值以及加在函数后面,修饰变量表示变量为常量,修饰函数参数表示在本函数内部修改参数的值,修饰返回值表示不能修改函数的返回值。
const int *p 、int const *p、 int *const p 、const int *const p区别:
const是右结合符,且const在数据类型前与数据类型后一样,如const int *p 与 int const *p均表示 *p为常量,不可修改,但p所指向的地址可以改; int *const p如
这里写图片描述
特别说明的是在函数后面添加const关键字,只针对类的成员函数,此时修饰的是函数的隐含参数this指针,表明在整个函数内不修改对象的数据成员。

本博客将会后续添加新的内容,由于水平有限,欢迎大家拍砖!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值