#include "stdio.h"
int main(void)
{
int x=10;
int *p;
p=&x;
printf("*P=%d",*p);//会输出*p=10;
}
示意图
由上面可知,
定义了一个基类型为int的指针变量p,
- p存放的是变量i的地址,所以给变量p初始化一定是给变量p赋予一个地址
- p指向x,
-
*p等价于x ,所以*p的值会等于x的值,*p==x成立
由指针的意义可知,*p等价于x,那么可以通过指针p来改变x的值。如下:
#include "stdio.h"
void f(int *)
void f(int * p)
{
*p=20;
}
int main(void)
{
int x=10;
f(&x);
printf("x=%d",x);//会输出x=20;
}
由上可知,在main函数中可以调用函数 void f (int * p) ,通过传递形参 int *p=&x,
f()函数中的 *p 等价于 x,所以可以通过改变 *p 的值来改变x的值。
以上通过指针的方式跨函数改变了main函数变量x的值。