&在c语言中是什么意思?

Python035

&在c语言中是什么意思?,第1张

&:在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。

a&b表示啊a和b按位进行与运算。&后面是个变量。每个变量对应一块存储空间。每个存储空间有一个编号,也就是地址,&变量名表示取出这个编,变量名表示取出这个编号所对应的存储空间里的值。

c语言运算符号

1、算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2、关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3、逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4、位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

找到变量在内存空间的位置,对变量进行操作时,会找到该处。

&后面是个变量。每个变量对应一块存储空间。每个存储空间有一个编号,也就是地址,&变量名  表示取出这个编,变量名表示取出这个编号所对应的存储空间里的值。

依照我的理解:& 取地址 就是找到那个分配的内存空间   然后去那块内存里  找我们需要的变量   我这可能是用了oc的解释   因为对c不是很熟悉。

&是取地址运算符,&a为变量a的地址。

系统就会在内存中分配一个空间,*a的值就是变量a的值3       定义一个指向整型数据的指针,作用与&相反,它是根据变量的地址取出变量的值在编译时就给它分配一个地址,该指针指向整型数据;&a就是2000,再把3写入这个空间。

int *p()&是取址运算符。又如scanf(&quot。。下面是定义和声明中用到指针的小结int *p。运行后p=2000就是把a的地址2000赋给p,作用是提取一个变量的地址。&就提取它的地址,由地址找到a在内存中的空间。*是指针运算符。

它由n个指向整型数据的指针元素组成,它指向一个指向整型数据的指针变量  p为指向含n个元素的一维数组的指针变量,那么在编译时%d"      p为返回一个指针的函数。

如果你想系统的了解建议你可以看看谭浩强的《c程序设计》(第三版)这本书通俗易懂,比如是2000,p=&a,该函数返回一个整型值。int **p。

假如先定义了一个整型指针变量p。是学习c语言不错的教材.g int a。

int (*p)()。而这个空间在内存中的位置就是它的地址,它会先根据&a知道a的地址。

int (*p)[n]。p是一个指针变量。int *p[n]定义指针数组p,&a)。比如你定义了一个变量当你输入3时   p为指向函数的指针。

我明白你什么意思,指针的概念确实不好理解!

1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!

指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。

整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。

2,再说下运算符*和&

*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以

*p1

就等同于变量a

&是求地址运算符:就是将变量所在的内存地址,提取出来

这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。

3,再说下题

*运算符就是对地址进行操作的,那么

*地址

的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:

先取变量a的地址

对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。

4,还有什么不明白的么?