1、定义一个基本类型指针

  1. dataType * varName;
  2. dataType
  3. 能够存放的数据类型的数据地址
  4. int
  5. float
  6. char
  7. ...
  8. *:
  9. 表示这是一个指针变量
  10. varName:
  11. 指针变量名
  12. 如:
  13. int * p;
  14. 声明一个p指针变量,如果没有赋值,那么默认会分配一个垃圾值地址。
  15. 所以也叫定义一个指针变量。

2、怎么使用指针变量

  1. int * p;
  2. int i = 1;
  3. p = &i;//指针变量只能存储地址
  4. printf("%d",*p);// *p => 以该指针变量的内容为地址的变量
  5. //这里就是以p的内容(i的地址)为地址的变量

3、用场

1、读写不同作用域的变量(修改实参的值)

  1. /*
  2. 比如我们想要读写另一个函数的变量,因为作用域不同,不能直接读写,比如通过传参的方式,但是传参也就是把值赋给形参,形参也是局部变量,修改形参也只是修改自己作用域的。
  3. 所以这里我们就需要指针变量操作了。
  4. */
  5. void main(){
  6. int num = 1;
  7. int num1 = 2;
  8. printf("%d %d",num,num1);//1 2
  9. add(&num,&num1);
  10. printf("%d %d",num,num1);//2 3
  11. }
  12. void add(int * num, int * num1){
  13. //此时 num 就是main中的num的地址了,num1就是main中的num1的地址了。
  14. *num = 2;//通过*num就能读写main中的num了。
  15. *num1 = 3;
  16. }