C语言中 取内容与取地址运算符的问题

如题所述

我明白你什么意思,指针的概念确实不好理解!
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!
指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。
整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。
2,再说下运算符*和&
*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以
*p1
就等同于变量a
&是求地址运算符:就是将变量所在的内存地址,提取出来
这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。
3,再说下题
*运算符就是对地址进行操作的,那么
*地址
的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:
先取变量a的地址

对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。
4,还有什么不明白的么?
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-10
无代码无真相。
是类似于这样吗:
int
a;
printf("address:
%p\n",
&a);
有的时候,退出程序后立即重新运行一次,使用的变量的地址还会是之前的地址,这在我之前测试程序的时候发现的,每次退出再重新运行程序,有几次打印的变量的地址都是一样的。
就算是特意开其它程序,其它程序占用的内存空间也不一定会是你那个程序之前占用的内存空间,可用内存越大,程序的内存空间的重叠几率就会越大。

C语言中 取内容与取地址运算符的问题
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。2,再说下运算符*和& ...

C语言 关于取地址符问题
数组的名字就是代表数组的第一个字符的首地址,所以说你上面也可以不用printf("&manager.id=%x\\n",&manager.id);这样;如果改成下面这个语句,得到的答案也是一样的:printf("&manager.id=%x\\n",manager.id);

关于c语言中的取内容运算符*
既然你知道ip的值是变量p在内存中的地址,那么你就应该知道*ip就是p的值啊。还有,记住,只有在定义时才可以写 int a , *ipa=&a ;只有这时这种写法才是合法的。要是直接*ipa=&a ;的话,编译器会报错。

如何准确理解C语言的下标运算符“[]”和取内容运算符“*”
准确地解释下标运算符“[]”和取内容运算符“*”。旨在抛砖引玉,不妥之处,恳望同行专家不吝赐教。C语言规定:数组名是一个指向数组元素类型的指针,它是指向该数组的第一个(即下标值为零的第0号)元素的指针常量。

取内容运算符的问题
去内容运算符是 取地址运算符是& 具有取某个地址指向内存空间中的内容作用的运算符就叫做取内容运算符

C语言中取内容运算
p的类型就是 int *;也就是a pointer to int.p的类型是int。如果有p = &a; 显然,&a的类型和p的类型一样,都是地址,int p的类型是 int 而 *&a的类型恰好也是int。--- 其实你只要把*p看成整体,比方说#define b *p b = a;这个赋值是不是就理解了?左右都是int。而把&a看成整体...

初学C语言,*是取指针目标运算符,&是取地址运算符,它们有什么区别?通 ...
1. &是取地址运算符,它可以用来获取任何变量的地址。例如:定义一个整型变量i,并用指针pi来存储i的地址,可以写成`pi = &i;`。同样,可以定义一个指向指针的指针ppi,并将pi的地址存储在其中,写成`ppi = π`。2. *是取指针目标运算符,它用于获取指针变量所指向的地址内的值。例如,如果...

请教C语言 问题
& 是取变量地址运算符, * 是取对应地址中的内容,如:int *p = &i;&i 是得到 i 的地址,也就是 p 存放的是 i 的地址;&i 就是 *p ,即取 p 对应地址中的内容,就是 i &*i 这样写没有意义,如果写成:&*p 就是相当于先计算 *p,再取地址,即 &(*p),也就是 &i i++ 与 (...

请问,C语言的&运算符取的是逻辑地址还是物理地址?
C语言中的运算符具有不同优先级和结合性。针对您的问题,&运算符,也称为“地址与运算符”,它取的是逻辑地址而非物理地址。在C语言中,逻辑地址指的是在内存中的位置表示,它是通过操作符&获取的。这个操作符用于获取一个变量的内存地址,即该变量的逻辑位置。而在物理内存中,地址则是实际存在的...

在C语言中函数参数什么时候用“&”取值符呢?
调用函数时查看函数申明 比如 int a(int *)由于是int *型的输入数据,表示一个存了int型变量的地址 所以就要用取地址符了

相似回答
大家正在搜