十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
就是找到这个变量的内存地址,直接读写
创新互联公司是一家专业提供海湖新企业网站建设,专注与成都网站设计、网站建设、外贸网站建设、html5、小程序制作等业务。10年已为海湖新众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
例如:scanf("%d",a);
就是找到a的地址,把读入一个数写到a
的地址中
在例如
p=a;
就是让指针p指向a的内存地址,这样直接对内存读写.有利于提高操作速度.
c 语言函数 形参 列表 中 可以是普通变量 或指针变量,不允许 加取址符。
c++ 语言函数 形参 列表 中 加取址符 的参数 叫 “引用”,c 不支持。
------
函数 调用 的实参 类型 要与 形参对应,只有 形参 为 指针变量 的 实参 才可以是 地址。
void f(int x, int *y){};
int a,b;
int *p;
p=a;
调用
可以是 f(b,a);
可以是 f(b,p);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,p);
不可以是 f(b,p);
不可以是 f(b,p);
(但愿回答不被封。)
地址符 就是获得一个变量/常量/函数的内存地址,没有别的含义。
scanf中,使用地址符,是因为scanf需要的是指针变量(因此指针变量不需要地址符),而普通变量需要通过地址符转译为指针使用。
char c,*p;
c = 'a';
p = c;//这是地址符的“真谛”
scanf("%c",c);
scanf("%c",p);
注意两个scanf语句都是正确的。
楼主请注意,那不是取地址符,是引用..
如果不加那个,运行的时候会把整个l的内容复制一份,送给函数去处理,因此,主调函数中的l的内容不会发生变化