c语言数据结构l与l的差别是什么

2021-01-17 19:38:56 字数 1616 阅读 2774

1楼:兰色的闪电

*是用来做指针处理的。

*l表示:l里面放了一个地址,*l则把这个地址的内容提出来。

例:20h这个地址里面存了一个数5.

而l则把20h这个地址存起来了。

*l就等于5.

而*&l而不同

&是取地址的意思。

&l就是把l的地址位置取出来。例于l在0x30位置。

*&l的结果,相当于*(0x30)。这个时候,要看0x30里面的值是多少。然后把这个值做为指针,再把具体的数据取出来

2楼:匿名用户

这个用在形式参数中。*&l表示传递引用,形参与实参就是同一个变量;*l表示传地址值,实参将地址值传给形参后,他们之间不在有联系。

3楼:匿名用户

当然有了。

*l 表示以l这个指针变量中的内容为地址的变量中的内容。

*&l 是表示以l内容为地址的变量中的内容。

可能看了有点别扭。

如l->i 且i=7;那么 *l就是7;

如l中存了39501h这个地址,且这个地址所指的变量是j ,且j=3;那么 *&l就是3。

数据结构中*和&的区别是什么

4楼:匿名用户

应该是c++里的吧?没有在c语言版的数据结构中看见&吧?

在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;

在调用时,*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。

而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5

,而再给b赋值:b=10,a的值也会变为10。

我想楼主会问*和&的区别,应该是针对函数定义里的参数而言吧,因为这里的这两者比较相似:

举几个简单例子:

先定义有int x=0;和int *p=x;

1、若定义函数: void fun_1(int a) , 则调用:fun_1(x); 之后,x还等于0;因为fun_1函数只改变了形参a的值,a只是fun_1函数里的局部变量,调用fun_1(x)相当于是“a=x;a=5;”,x没变;

2、若定义函数:void fun_2(int &a) , 则调用:fun_2(x); 之后,x等于5;因为这里的a引用了x的值;

3、若定义函数:void fun_3(int *a) , 则调用:fun_3(p); 之后,x也等于5;因为fun_3函数的参数a是一个指针,相当于a=p;*a则与*p指向同一地址,改变*a即改变*p即x

5楼:9小王子非鱼

数据结构中*是取地址内容,和c语言用法一样。而&的用法有两种,一种是取地址运算符,和c语言的一样,另一种是引用,参考了c++的用法。

*有两个意思,一是定义指针时使用:int* p=pa;另一个是解引用时使用:cout<<*p<&也有两个意思,一是取地址时使用:

int* p=&a;另一个是定义引用时使用:int& a=b。

*&的意思是指针的引用,一般在函数的传参时使用,表示将指针直接传给函数,不是仅仅复制指针的地址作为副本进行传递。

10ng L什么意思,“ng/L”与“ng/g”的区别是什么?

1楼 遠方小星星 质量单位,ng 纳克 千克 kg 克 g 毫克 mg 微克 ug 纳克 ng 皮克 pg 飞克 fg 阿克 ag 1千克 1000克 1克 1000毫克 1毫克 1000微克 1微克 1000纳克 1纳克 1000皮克 1皮克 1000飞克 1飞克 1000啊克 1kg 1000g...

C语言中与的区别,c语言中“&”与“*”有什么区别?

1楼 匿名用户 是取地址 叫解引用,意思是取地址的内容 举例 int a 3 int b a 这里 表示取a的地址 b就是去b的地址的内容就是3 2楼 诡其辞 s形式表示取变量s的地址 a b形式表示a与b之间进行位与运算。 s形式表示指针变量指向的位置 a b形式 呵呵!不消说了。 3楼 匿名用户...

c语言中与有何区别,c语言中%c与%s的有什么区别?

1楼 匿名用户 在定义变量时 是定义指针 是引用 注 好象c没有引用 例如 int pvar null 定义一个int类型指针int var 0 int pvar var 定义一个引用 并且定义时要指定所引用的对象 在使用时 是解指针 即取其指向的变量的值 是取地址int var 10 int pv...