c++ &与*各自都有什么作用???

刚开始学c++,看到好多&,*不知道什么时候该用&,什么时候该用*,请各位交给我吧

&的作用:一是取变量的地址,二是引用(引用相当于为一个变量取一个别名,比如:
int someInt; //定义someInt;
int &rInt=someInt;//声明rInt对整形数引用,并初始化引用为someInt,那么这个时候rInt和someInt就内容相同了)。
*的作用:一是定义指针,二是取指针所指向地址变量的内容(我们说每个指针都指向一个变量,其实是指针记住了这个变量存放的地址,调用的时候就可以通过指针找到这个地址调用这个变量,*就是取出这个变量的内容,比如:
int m=5;
int *p=&m;//用&取m的地址赋值给指针p;
int n=*p; //取指针p所指向的地址即存储变量m的地址处存放的内容即变量m的内容5,将其赋值给变量n;)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-12-20
&是取内存地址,
*是访问内存地址,定义指针时也要在类型后加*
两者正好相反
int a
int *p=&a //定义指针p 并取a的地址
int b = *p //*p:访问p指针所指向的内容

指针就是代表内存的地址。就像你家的门牌号。
第2个回答  2007-12-20
&是取地址运算符,用于取地址,
*是解引用该地址的运算符,用于引用该地址的值!
第3个回答  2007-12-20
“&”是取地址
一般是你要知道哪个变量的地址或是初始化变量时用
“*”是定义指针时候用的
第4个回答  2007-12-21
&是把变量的地址取出来
*是把指针指向的变量取出来

c++中,k&=k-1是什么意思啊?
C++中,&符号有两个基本作用。一是取地址;第二个是按位与运算,就是AND运算,是二进制运算。这里显然不是取地址,而是后者。比如,k=23时,化成二进制就是10111,然后原式等价k = k & (k-1),也就是10111&10110,结果等于10110,就是22.我用程序验证过。

C、C++以及C#各自应用在哪些方面?
c++ 最简单的说,就是编程的,用来编你现在用的软件,游戏等。只是它很老很基础`C# 编程开发 一中更简单的编程语言

C++ 中形参中的 *& 是什么意思?
C++代码里面使用结构体的时候可以省略struct的,最好不要加上struct。 你的这段代码应该是数据结构课本上的吧!

C与C++与C#一般各自应用在哪些方面
C与c++是同一层次,只是“++"引入了类概念,在系统应用软件上主要开发应用软件的核心,如大型应用程序的引擎,必须采用c或c++。银行与安全性领域必须是用c与c++做与硬件相关的原创性安全开发,不可能隔着第三方公用系统在其上开发。在电子行业,嵌入式系统,数控等与硬件直接打交道的领域都是c的天下,偶...

我是个c++初学者,感觉学到指针这比较难,尤其是2级指针,哪为大虾能给...
这块存储区里是什么?我们不知道。有可能它是一个非常重要的数据,甚至可能是一条代码。而第4句竟然往这片存储区里写入一个数据!这是严重的错误。所以在使用指针时,程序员心里必须非常清楚:我的指针究竟指向了哪里。在用指针访问数组的时候,也要注意不要超出数组的低端和高端界限,否则也会造成类似的错误。 在指针...

C++问题:T t和T& t有什么本质区别?为什么T t会使值发生变化?
如果函数的形参类型为T,则调用该函数时,对应的实参可以是任意表达式,这时,在函数被调用时,系统为形参分配存储单元,并将实参的值复制到形参(形参和实参各自拥有自己的存储单元)。于是函数体中对形参的操作已经于实参无关了,因此T类型形参只能实现实参到形参的单向传递。那么,本例的func函数形参类型...

C++中::和:, .和->的作用和区别?
在C++中,符号“::”和“:”以及“.”和“->”各自具有独特的功能。让我们一一解析。首先,"::"用于表示作用域解析运算符,用于访问类的成员。它用来指定在哪个命名空间或类中查找特定的成员,例如在继承、全局变量或函数中。例如,当需要访问一个基类的成员时,我们会使用"::",如`BaseClass::...

L为线性表,则*L和&L有什么区别?
在实际应用中,线性表都是以栈、队列、字符串等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点...

C语言、C++与C#的不同点与相同点,各自的适用性
3)C++与C#适合软件程序开发而且方便快捷,界面都是可以现成的,你一个人就很容易做出一个软件来,而C语言比较适合底层开发,效率比较高,一个大型的软件或者操作系统的底层需要C语言编写,比如Linux操作系统基本都是C语言的代码写出来的,windows也不例外的。4)学习的建议,从C语言开始学习,然后选C++或者...

C语言的指针是什么
所有的C\/C++编译器在排列数组的单元时,总是把各个数组单元存放在连续的存储区里,单元和单元之间没有空隙。但在存放结构对象的各个成员时,在某种编译环境下,可能会需要字对齐或双字对齐或者是别的什么对齐,需要在相邻两个成员之间加若干个“填充字节”,这就导致各个成员之间可能会有若干个字节的空隙。所以,在例...

相似回答