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

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; //指针常量 

 

c++基础知识篇:指针的更多相关文章

  1. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

  2. 【Java面试】1、基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...

  3. Java白皮书学习笔记+Head First Java--用于自我复习 基础知识篇

    本笔记是摘与Hava白皮书上面的内容,用来给自己做提醒的,因此大概并不适合Java的学习者作为笔记参考使用. 以我的水平现在还看不懂这个... 一.基础知识篇 1.常量 final关键字指示常量,只能 ...

  4. Java 面试知识点解析(一)——基础知识篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  5. LeetCode刷题191130 --基础知识篇 二叉搜索树

    休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继 ...

  6. 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !

    本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...

  7. CSS3 的box-shadow进阶之 - 基础知识篇

    box-shadow被认为是CSS3最好的特性之一,发挥想象力,搭配其它属性,可以做出很多好看的效果(如下图,将会放在下一篇文章讲解),这篇文章主要讲一下box-shadow的基础知识.       ...

  8. Java多线程基础知识篇

    这篇是Java多线程基本用法的一个总结. 本篇文章会从一下几个方面来说明Java多线程的基本用法: 如何使用多线程 如何得到多线程的一些信息 如何停止线程 如何暂停线程 线程的一些其他用法 所有的代码 ...

  9. Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...

随机推荐

  1. 事件调度器及C++中的使用

    转自:http://blog.ch-wind.com/ue4-event-dispatcher-and-delegate/ 事件调度器非常的适合在各个蓝图之间实现通信功能. 当前UE4版本4.8.3. ...

  2. java多态介绍温故而知新

    多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比如我们按下 F1 键这个动作: 如果当前在 Flas ...

  3. socket通讯实例与TCP/UDP的区别

    一.socket代码实例 1.简单的socket通讯: 服务端代码实例: import socket sock = socket.socket(socket.AF_INET, socket.SOCK_ ...

  4. python's thirty-first day for me re模块

    正则表达式: re 模块 可以读懂 你写的正则表达式,根据你写的表达式去执行任务. 正则表达式:字符串的操作. 使用一些规则来检测字符串是否符合我的要求  ——  表单验证 从一段字符串中找到符合我要 ...

  5. 界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序

    主窗体,子窗体的InitializeComponent(构造函数).Load事件执行顺序1.执行主窗体定义事件 new函数时,同时执行主窗体构造函数,默认就一个InitializeComponent函 ...

  6. 第十一章 SpringMvc(待续)

    ············

  7. scikit-learn和tensorflow的区别

    1.功能不同 Scikit-learn(sklearn)的定位是通用机器学习库,而TensorFlow(tf)的定位主要是深度学习库.一个显而易见的不同:tf并未提供sklearn那种强大的特征工程, ...

  8. Ubantu下安装adobe flash player插件

    用火狐看视频,要打开Adobe官网下载xxxx,太麻烦. 可以在Terminal下输入: apt-get install flashplugin-nonfree 好了.

  9. CSS JQuyer 元素选择

    $(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 class="intro" ...

  10. Elasticsearch集群如何扩容机器?

    前提, Elasticsearch-2.4.3的3节点安装(多种方式图文详解)   比如,你已经成功搭建了3台机器的es集群,如我这里分别是192.168.80.10.192.168.80.11.19 ...