C中指针学习

指针


内存中的地址值,每个内存的唯一编号 ,在C中内存单元的地址是指针

指针的作用

  • 取地址运算符 &
    • &i 取地址运算符 & 获得变量的首地址
  • 取对象运算符 *
    • 根据内存地址取出内存数据 *&i 可以操作数据

指针变量

变量按照功能分可以分为两大类 :
  • 普通变量: 保存数值数据
  • 指针变量: 保存变量的地址(内存单元变量)

    • 普通变量的定义 : 数据类型类型 变量名 如: int i int a =’i’
    • 指针变量的定义 :数据类型 *指针变量名字 如 int *p;

* 的含义

  1. *两个运算 :乘法 a*b
  2. 定义指针变量 int *p;
  3. 取对象运算符 *p 根据p保存地址,取出内存单元的内容

指针的指向

指针变量保存一个对应类型变量的地址,指针变量指向这个对象,指向这个变量可以通过指针运算符访问变量

指针的相关类型

1.指针的数据类型:是指针指向对象的类型,绝对指针变量利用取对象运算符访问内存时一次访问几个字节
2.指针类型:int * 指针类型

指针使用的错误

1.指针的类型不匹配
int a=100;
int *p;
int * pa;
p =&a ;//指针类型不匹配,访问内容的方式不一样
2.野指针:指针没有合法的指向.建议给null,读写一定错误,必须先获得合法的指向,才能使用
int i=100; 变量名i访问申请其申请的内存

2级地址指针

如int **p :是用来保存一级地址指针变量 ,其他的以此类推

数组

1.相同数据类型变量的集合,变量在内存中连续

怎么定义数组

            数据类型 数组名称[数组个数]
            int arr[6]

数组的特点

1.数组名称代表数组首元素的首地址 arr 标识 arr[0]
2.数组定义要求个数,个数需要是常量
3.c语言不检查数组角标越界
4.计算数组元素个数的长度 : sizeof(arr)/sizeof(arr[0])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值