定义
- 指针是保存地址的变量
- *p是一个指针
int i;
int *p=&i;
\*或者*\
int* p=&i;
- p指向i
- p的值是i的地址
- *p的值是i的值
作为参数的指针
可以使用函数 void f(int *p);
在被调用的时候得到了某个变量的地址:
int i=0;
f(&i);
在函数里可以通过*p这个指针访问外面这个i的地址
#include<stdio.h>
void f(int *p);
void g(int k);
int main(void)
{
int i=6;
printf("&i=%p\n",&i);
f(&i);
g(i);
return 0;
}
void f(int *p)
{
printf(" p=%p\n",p);
printf("*p=%d\n",*p);
*p=26;
}
void g(int k)
{
printf("k=%d\n",k);
}
运行结果
&i=0x100000 \\&i是i的地址,用%p
p=0x100000 \\p的值是i的地址,用%p
*p=6 \\*p的值是i的值,用%d
k=26 \\更改*p的值,i的值会被改变,所以k的值随之改变