码迷,mamicode.com
首页 > 编程语言 > 详细

c++基础知识篇:指针

时间:2014-08-07 22:34:58      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:blog   数据   ar   div   代码   amp   c++   new   

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

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++基础知识篇:指针,布布扣,bubuko.com

c++基础知识篇:指针

标签:blog   数据   ar   div   代码   amp   c++   new   

原文地址:http://www.cnblogs.com/zjgtan/p/3897979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!