带你10分钟掌握c语言指针

  1. 学指针之前你要先了解这些概念。
    地址:在计算机内存中,每一个字节单元,都有一个编号称为地址地址:在计算机内存中,每一个字节单 , 都有一个编号称为地址
    指针:内存的地址就是指针。
    指针变量:用来存放地址的变量叫指针变量。

  2. c语言假设p是一个指针,p、*p和&p三种表示方法的不同意义

    p: 指针变量,它的内容是地址量
    *p :指针所指向的对象,它的内容是数据
    &p:指针变量占用的存储区域的地址,是个常量

  3. 指针的赋值运算
    向一个指针变量赋值时,赋的值必须是地址常量或指针变量,不能是普通的整数(除了赋0以外)
    指针与一般整数变量之间的关系运算没有实际意义。但可以和零进行等于和不等于的关系运算,判断指针是 否为空
    p++ p先与++结合 因为++的优先级别高于

  4. 指针数组与数组指针
    数组名记录的是首地址,数组的首地址就是数组的第一个元素的地址,数组取下标 的操作实际上就是,地址偏移后进行取值操作。
    指针是一个变量,可以做++操作。
    数组时一个常量,不可以做++做操。

    数组指针:实际上就是行指针。 int (*p)[3];
    指针数组:是一个数组,该数组中的每一个元素是一个指针,(常量字符串)

    char arr1[2][4] = {“abc”,”def”};
    char *arr2[2] = {“abc”,”def”};

    区别:arr1的数据是保存在一段连续的栈内存空间中(数组指针可指向该数组)
    arr2在栈上有两个8字节空间。是一维数组,一维数组需使用一个一级 指针,但该一级指 针定义为char *类型的一级指针,char * *p,这样的指针 数组需要使用二级指针进行指向。

    用数组指针表示a[2][3]的地址 *(p+2) + 3

  5. 函数指针和指针函数
    函数名记录的是一个地址,该地址是函数的入口地址
    函数指针:
    是一个指针,该指针指向一个函数的入口地址 int (*p)(int,int);一般用于回调函数
    指针函数:
    是一个函数,返回值是一个指针
    函数指针数组:
    是一个数组,该数组的每一个下标元素存放的是函数指针
    Int (*func_arr[3])(int,int);
    指向函数指针的指针函数数组:
    是一个数组,是一个函数指针数组,该数组中的每一个
    下标元素存放的是一个指向指针函数的函数数组指针
    int *(*funcarr[3])(int,int);

  6. 多级指针
    把一个指向指针变量的指针变量,称为多级指针变量
    对于指向处理数据的指针变量称为一级指针变量,简称一级指针
    而把指向一级指针变量的指针变量称为二级指针变量,简称二级指针
    多级指针的运算
    Int **q; q+1就是移动一个指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjxx_psy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值