从面试的反馈来看,这部分可以问的很难。

1、指针与引用的区别

指针是一个变量,用来存放地址的变量。引用是原来变量的存储空间的别名。

 

2、指针作为参数的要点

a、需要进行指针的合法性检验,防止空指针。

b、需要修改指针本身指向的地址时,参数需要是该指针的引用。

 

3、c++程序运行空间

数据区(Data Area):全局变量、静态变量、常量存放在数据区。

代码区(Code Area):所有类成员函数和非成员函数

栈区(Stack Area):为运行函数分配的局部变量、函数参数、返回数据、返回地址,函数运行结束,自动释放。

堆区(Heap Area):new malloc分配的空间

char *strA()
{
const char *p_1 = "hello"; //指向数据区,属于常量数据,不能按位修改
char p_2[] = "hello"; //局部数组,位于栈区,返回地址无意义
static char p_3[] = "hello"; //位于静态数据区,注意:static变量在编译期初始化
p_3[0] = 'a';
return p_3;
}

需要补充学习c++对象模型。了解对象的存储区分配。

 

4、指针的声明

int (*f)(int, int); //函数指针
int (*(*f)(int, int))(int); //函数指针,指向的函数返回一个函数指针
f = &func; //函数指针赋值
f = func; //函数指针赋值 int *(*p)[10]; //声明一个指针,这个指针指向一个指针数组
int **p[10]; //声明一个数组,元素类型是指向指针的指针 const int* p; //指向常量的指针
int * const p; //指针常量 

 

最新文章

  1. 2-SAT 问题
  2. SQL Server2008 with(lock)用法
  3. POJ 1141 Brackets Sequence(DP)
  4. MySQL- -Join语法解析与性能分析
  5. 【BZOJ】1036: [ZJOI2008]树的统计Count(lct/树链剖分)
  6. centosx64位寄存器
  7. CSS禅意
  8. 27个Jupyter快捷键、技巧(原英文版)
  9. NYOJ 45 棋盘覆盖
  10. JavaScript设计模式_03_代理模式
  11. C++ Primer高速入门之三:几种常见的控制语句
  12. django 多对多自定义第三张表时的注意事项
  13. Mac休眠后解决卡死转圈问题
  14. django 获取用户提交的数据 文件 表单
  15. Jmeter性能监测及安装插件(推荐)
  16. 查看java进程启动的详细参数和过程
  17. jQuery UI.Layout 参数
  18. c++的.o文件的链接顺序
  19. ActivityStream是什么?什么是Feed流?
  20. button 默认类型是submit

热门文章

  1. (转)winform pictureBox后台显示图片
  2. 安装appium需要注意的事项
  3. 数据分析与处理之二(Leveldb 实现原理)
  4. NOIP2008普及组第3题 传球游戏
  5. Linux的启动级别
  6. UE4子弹特效
  7. 进程之 Process join方法其他属性与进程Queue
  8. svn锁定问题解决
  9. angularJS笔记之 服务
  10. sklearn 中 make_blobs模块