C语言 指针

指针定义

int a = 1; //普通变量的定义
int *pA = &a; //指针的定义

或

int *pA = NULL;
pA = &a;

(1)变量pA的值等于变量a的内存地址。星号*的作用是表明变量pA是一个指针变量。

(2)指针的类型:把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。

        1 、int*ptr;//指针的类型是int*

        2 、char*ptr;//指针的类型是char*

        3 、int**ptr;//指针的类型是int**

        4 、int(*ptr)[3];//指针的类型是int(*)[3]

        5 、int*(*ptr)[3];//指针的类型是int*(*)[3]

(3)指针所指向的类型:把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。

        1、int*ptr; //指针所指向的类型是int

        2、char*ptr; //指针所指向的的类型是char

        3 、int**ptr; //指针所指向的的类型是int*

        4 、int(*ptr)[3]; //指针所指向的的类型是int()[3]

        5 、int*(*ptr)[3]; //指针所指向的的类型是int*()[3]

二级指针 

一级指针保存的是数据的地址,二级指针保存的是一级指针的地址 

指针数组与数组指针的区分

形式上两者唯一的区别就是()的存在,()直接影响了p的结合顺序。

(1)无()则p与[]首现结合构成数组,从而声明一个指针数组:int *p[3];指一个数组里面装着指针,也即指针数组是一个数组。

(2)有()则p与*首现结合构成指针,从而声明一个数组指针:int(*p)[3];指一个指向数组的指针,它其实还是一个指针,只不过是指向数组。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值