一.指针是什么
指针是一种保存变量地址的变量。
普通变量的值是实际值,指针变量的值是变量的地址。
二.指针怎么用
1.定义指针:
类型说明 *变量名
① int *p = &n;
② int *p;
p = &n;//注意不要再在p前加*。
2.解引用 :直接操作储存地址里面的数据。
例:*p = 100; ——> *(&n) = 100;
三.指针与函数
int func(int m){
m = 100;
}
int main(){
int n = 10;
func(n);
printf("n = %d\n",n);
}
输出为:n = 10
int func(int* p){
*p = 100;
}
int main(){
int n = 10;
func(&n);
printf("n = %d\n",n);
}
输出为 :n = 100
因为函数内部改变函数外部定义的局部变量必须满足两个条件:
- 指针参数
- 解引用
例:
#include<stdio.h>
void func(int m){
printf("m:%d\n",m);
m = 100;
printf("m:%d\n",m);
}
void func2(int* p){
*p = 200;
}
int main(){
int n = 10;
printf("n:%d\n",n);
func(n);//func(10);=>int m=10;
printf("n:%d\n",n);
func2(&n);//func2(0xfff??????)=>int* p=0xfff?????
printf("n:%d\n",n);
}
输出为:n:10
m:10
m:100
n:10
n:200