3月24号左右就要计算机二级考试了,这几天在忙着看C++,前几天刚刚把面向过程的那一部分内容看完,面向对象的东西还没有看。在看的过程中有三个概念息息相关,他们是:指针,变量的地址,引用。
指针:指针是一种特殊的变量,它存放的是变量的地址值,通过指针可以间接对这个变量操作。指针的类型与它所存地址的变量的类型是相同的。
指针的定义与一般变量的定义差不多,只是变量名前面要加一个“*”,以说明定义的变量是指针类型的,例如:int *pa;就是一个简单的指针变量的定义,它所存放的是int类型的变量的地址,如 int a; pa=&a;将整型变量a的地址赋给指针pa
地址:即变量的地址,内存中每个字节都有一个地址值,而变量的地址是它所占有的相应字节的首地址,如:int a;&a指的是int型变量a所占4个字节中的第一个字节的地址
对于一个已经定义的变量,他有两个重要的值,一个是变量的值(就是我们通常所说的变量值),另一个是变量的地址值。系统通过地址找到内存中对应的变量,然后再对变量值进行处理。
引用:引用也是一种比较特殊的数据类型,一个引用就是一个已存变量的别名,而且在定义引用时必须给它赋初值,如:int a;int & b=a;(定义引用就是在相应的变量名前加“&”)。
引用与指针很相似,但是他们又有很大的区别:
1指针在内存中是要有自己的空间的,它存放的是变量的地址值,而引用不占用内存空间,它只是一个已经存在的变量的一个别名,引用的变量值和地址值都是和被引用变量相同的。语句 int & b=a;其实就是给变量a又起了一个名b
2引用和指针的作用是很相似的,就是当他们作为函数的形参时,对指针和引用的操作都会反映到实参上,如
void fun1(int & a,int &b)
{
a=a+1;
b=b+1;
}
void fun2(int *a,int *b)
{
*a=*a+1
*b=*b+1
}
在调用函数时,下面两种情况都将改变实参的值
int c,d;
c=1;
d=1;
fun1(c,d);
cout<<c<<d;
fun2(&c,&d);
cout<<c<<d;
两次的输出结果分别是:
22
33
其实fun1函数其实就是VB里面的函数调用传引用方式,相当于vb里面的 public function fun1(byref a as integer,byref b as integer)
如果改变了 形参a,b的值,实参的值也就改变了
3虽然指针和引用具有相似的作用,但是指针是不安全的,引用是安全的,因为引用在定义时就得赋初值给定被引用变量,以后就不能变了;而指针所指向的变量是可以改变的。所以在C#和Java里面保留了引用而弃用指针
希望通过这篇博客,能对大家有所帮助。
分享到:
相关推荐
详细分析了指针与引用的区别,适合初学者了解
在C++中,可以说明指向类的数据成员和成员函数的指针。 指向数据成员的指针格式如下: <类型说明符><类名>::*<指针名> 指向成员函数的指针格式如下: <类型说明符>(<类名>::*<指针名>)(<参数表>) 例如,...
C++指针与引用,专门讲述c++中指针与引用的区别与使用。
C++重要的谨记指针和引用的区别,学好C++。
该文档给出两个关于c++高阶指针与引用的应用实例,是一个非常不错的C++学习资源!
C++引用&和指针在作为形参时的区别 int n; int &m = n; 在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,...
c++指针和引用教程,很详细很清晰,适合初学者使用
讲述C++指针和引用的用法,适合刚学的学子们
智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与...
指针和引用的区别,C++中指针和引用,初学者容易混淆。
每次创建类的新对象时,初始化指针并将引用计数置为1; 当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数; 对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数...
详细介绍了C++中通过指针和通过引用传递参数的区别
详细的讲解了C++中的引用和函数的重载的知识,引用和指针的区别,引用的实质,以及在使用引用时的注意事项,以及常引用的用法。
通过数个例子,很清晰的比较了C++中指针与应用的用法和区别。
C++智能指针实现(包含拷贝构造,赋值函数,引用解引用重载) 帮助初学者掌握智能指针的实现原理,采用引用计数方式实现
介绍了引用和指针的区别,C++虚函数原理,C++面试经验。
c++程序指针的引用.zip
指针和引用是c++中的一个重要概念,在学习c++语言过程中,深刻理解指针和引用的本质是必不可少的本文通过举例子,作比较等方法,阐述c++程序设计中引用与指针的区别与联系,揭示引用的本质以及使用引用的好处。
C++习题(指针和引用)[参考].pdf