C语言学习之指针

概念:指针是一种数据类型,它是一种保存地址的数据类型。

定义:存储类型  数据类型 * 指针变量名;

           Int   * p;

//定义了一个指针变量p,p用是用来保存地址的

数据类型:指针指向的数据类型(指针保存的是什么数据类型的变量的地址)

指针的数据类型:int *

指针的赋值:指针的赋值相当于改变指针的指向

(指针赋值时要注意 指针指向的数据类型必须相同)

空指针:指向零号地址的指针(值为0的指针,就认为该指针没有指向)

注意:零号地址禁止操作

野指针:不知道指向哪里的指针,局部变量,没有初始化,随机值

局部指针变量,如果没有初始化,就是野指针

二级指针:保存一级指针的地址

总结:

  1. 指针的数据类型,去掉变量名就是数据类型
  2. 指针指向的数据类型,去掉的一个*和变量名,剩下的就是指针指向的数据类型
  3. 指针所能访问到的内存空间的大小,由指向的数据类型决定

指针的算术运算:

p+n:p向地址增大的方向移动了n个数据

     p实际的变化:p + sizeof(指针指向的数据类型)*n

P-n:  p向地址见效的方向移动了n个数据

     p实际的变化:p - sizeof(指针指向的数据类型)*n

P++:  p向地址增大的方向移动了一个数据 //改变指针的指向

      p = p+sizeof(指针指向的数据类型)

P--:p向地址减小的方向移动了一个数据 //改变指针的指向

      p = p-sizeof(指针指向的数据类型)

p-q:(p和q数据类型必须相同):这两个指针之间相隔的个数

实际的变化:(q-p)/sizeof(指针指向的数据类型)

数组指针:

概念:指向数组的指针

定义:存储类型 数据类型 (* 变量名) [元素的个数];

                                     Int (*p)[3];

//定义了一个指向数组的指针p,指向的这个数组:有3个int类型的元素

数组类型:指针指向的数组中的元素数据类型

P:数组指针的数据类型: int (*)[3];

p指向的数据类型:int [3]

指针数组:

概念:元素为指针的数组

定义:存储类型  数据类型 * 变量名[元素的个数];

                                      Int * arr[3];

//相当于定义了一个数组,这个数组种有三个元素,每一个元素都是int *类型

数组中元素的数据类型:int *

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值