一、运算符&
scanf(“%d,&i)
&能够获得变量的地址
二、指针变量
1.指针变量——保存地址的变量
int i;
int *p=&i;
表示p作为一个指针,保存了i地址。
2.*是单目运算符,用于访问指针的值所表示的地址上的变量, *p表示变量的值。
既可以做左值也可以做右值,e.g.int k=*p,
*p=k+1;
3.在函数中,可以通过指针访问或改变函数外面的变量:
#include<stdio.h>
void f(int *p);
void g(int k);
int main()
{
int i=6;
printf("%p\n",&i);//输出i的地址
f(&i);
g(i);
return 0;
}
void f(int p)
{
printf("%p\n",p);//输出指针p所指向的i的地址
printf("%d\n",p);//输出指针p所指向的i的值
*p=16;//当改变了 *p的值后,该函数外的i的值也跟着改变,因为指针已经确定了地址
}
void g(int k)
{
printf("%d\n",k);//在f函数中将 *p的值改变了,相应的i的值也会改变。
}