在C语言中取地址运算符是“&”。“&”作为一元运算符,结果是右操作对象的地址;地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置。

在C语言中取地址运算符是”&“

示例:

#include <stdio.h>
int main(void)
{
    int a = 0;
    int *p = &a;
    printf("The value is: %d/n", *p);
    return 0;
}

&作为一元运算符,结果是右操作对象的地址。

例如&x返回x的地址。

地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置。至于对象,LZ现在只需知道包含常量、变量等数据就可以了。

scanf("%d,%d",&x,&y);

这里的&x表示x的地址,&y表示y的地址。scanf接收地址,然后把键盘(更确切地说是stdin输入流缓冲区)读入的信息按格式字符串的形式处理后存放到接收到的地址中。对于纯C来说,函数的参数是只能值参而不是变参,函数内部对参数的改变只影响参数本身而不影响调用函数时的实际参数(换句话说函数内部的只是副本)。所以这里不能向scanf传递x本身,需要用地址&x指明需要存放的位置,才能把值存到x中。

等系统地学完函数和指针传递函数参数以后,LZ应该会对这个有比较清楚的认识。

至于读键盘的活,是编译环境(包括操作系统底层)干的,和C语言本身无关


C语言中取地址运算符是什么?