A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

指针的定义:
严格上来讲,指针有两层含义,一是指一种保存地址的变量。二是指一种数据类型,是一种存储地址的特殊的数据类型,用来表示一个变量或者常量在内存中的地址。如果在内存中有一块空间,存放了变量a的地址,那么这块存放过了a的地址的 内存空间所对应的内容就是a的指针。
​指针的作用:
用于储存某一个地址,从而可以通过地址直接对该地址内存空间中的数据进行操作。
指针的用法:
定义:类型 *指针名;如int *p;表示定义一个能存int类型地址的指针变量,名字叫p
赋值:指针变量名=指针(地址) 注意:指针获取方法(&变量名)
指针的特点:
1:指针本真也有地址:指针定义之后,自身地址不变,但里面存的地址可以变化。
2:&p表示指针自身地址,而p表示指针存的地址,*p表示指针所存地址的内存空间。
3:指针不初始化赋值不要使用,未赋值前地址是随机的,未赋值不可以用 *p;
4:*修饰什么,就代表是什么的指针,判断原则:先确定变量的类型(根据符号优先级)
5:指针是什么类型的,就应该存什么类型的地址,否则*p取对应内存空间的指会出错。
  1. #include <stdio.h>
  2. void test1(int a);
  3. void test2(int *a);
  4. int main()
  5. {
  6.     int a=5;
  7.     printf("a=%d\n",a);
  8.     test1(a);
  9.     printf("after a=%d\n",a);
  10.     int *p=&a;
  11.     test2(p);
  12.     printf("a=%d\n",a);
  13.     return 0;
  14. }
复制代码

//传给函数的是一个值,函数内部对变量的修改不影响外部变量,外部变量的值不变
  1. void test1(int a)
  2. {
  3.     a=a+10;
  4. }
复制代码

/*
传给函数的是外部变量的地址,那么函数内部就会根据地址找到外部的变量,对它进行操作
函数内部对变量的修改就是对外部变量的修改
*/
  1. void test2(int *a)
  2. {
  3.     *a=*a+10;
  4. }
复制代码

1 个回复

倒序浏览
谢谢楼主分享,赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马