c语言地址运算符
㈠ c语言中 取内容与取地址运算符的问题
我明白你什么意思,指针的概念确实不好理解!
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!
指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。
整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。
2,再说下运算符*和&
*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以
*p1
就等同于变量a
&是求地址运算符:就是将变量所在的内存地址,提取出来
这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。
3,再说下题
*运算符就是对地址进行操作的,那么
*地址
的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:
先取变量a的地址
再
对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。
4,还有什么不明白的么?
㈡ C语言中取地址运算解释
// 定义int普通变量d,int指针变量e,f
int d,*e,*f;
// 指针e指向d的地址,即,e保存的是d的地址,而不是一个普通变量
e=&d;
// 获取终端输入的一个整数,赋值给d(即,将终端获取的整数值写入scanf后面跟的地址中
scanf("%d",&d);
// 指针f也跟e一样,保存d的地址
f=e;
以上,*e,*f,d实际上都是d
e,f,&d实际上都是d的地址
㈢ C语言中有地址运算符(那个符号我手机写不出来,暂且用§代替一下)§x表示变量x的地址,什么意思啊
你好!
存放这个变量的内存区域的代号,可以当指针使用。
打字不易,采纳哦!
㈣ C语言 指针运算符,地址运算符是怎样工作的
我把“*”和“&”这两个运算符做了较详细解释。这段代码你可以拷贝到VC/VS工程中看,我不知道你学过计算机硬件知识没,如果你学过硬件的一些基础知识,就比较容易理解。不过没学过也可以理解。如果你不明白就再问
int main()
{
int arr1 = 12, arr2 = 15;
char ch1 = 'b', ch2 = 'h';
float f1 = 3.14, f2 = 3.15;
/* “*”地址运算符解释 */
/* 定义三个指针,这三个指针分别指向不同的数据类型 */
/* 注意:此处的“*”指针运算符是为了说明我们定义的变量是一个指针变量 */
int *p_arr = &arr1; //指针变量p_arr中存放的是arr1的地址
char *p_ch = &ch1 ; //指针变量p_ch中存放的是ch1的地址
float *p_f = &f1 ; //指针变量p_f中存放的是f1的地址
/* 注意:此处的“*”指针运算符是为了操作指针p_arr指向的元素 */
*(p_arr) = 30; //等价于把变量arr1赋值为30
*(p_ch) = 'c'; //等价于把变量ch1赋值为字符'c'
*(p_f) = 90.89; //等价于把变量f1赋值为浮点数90.89
/* “&”地址运算符解释 */
p_arr = &arr2; //把变量arr2的地址赋值给p_arr
p_ch = &ch2; //把变量ch2的地址赋值给p_ch
p_f = &f2; //把变量f2的地址赋值给p_f
return 0;
}
㈤ c语言中,指针和取地址运算符到底是什么啊,能不能通俗一点讲啊,谢谢
关于指针,统统都是在说内存的事情,内存就像一个大楼,每个格子都有一个门牌号,也就是地址。取地址符的作用就是得到内存中某一段内容的门牌号,以供后面的需要。指针就是通过一个门牌号找到这个内容,跟取地址是一对
㈥ c语言中"&取地址"是什么意思
找到变量在内存空间的位置,对变量进行操作时,会找到该处。
㈦ C语言地址运算符&的作用
这里的&是引用,是C++的内容,并不是C语言中的取地址
㈧ C语言中地址操作符、指针操作符分别是什么
&是地址操作符。
e.g.
int a;
int *b;
b = &a; //&就是取a的地址,即是地址操作。
*是指针操作符,可以声明指针,也可操作指针所指的数据;
int *p;
*p = 10;